【问题标题】:Firebase Storage security rules playground "Simulated read denied"Firebase 存储安全规则游乐场“模拟读取被拒绝”
【发布时间】:2022-01-21 08:46:26
【问题描述】:

我希望我的用户只能读取和写入他自己的数据,但是。当我测试规则时,我收到消息“模拟器读取被拒绝”。请告诉我哪里错了?感谢您的宝贵时间。

这里有一些信息:

规则

service firebase.storage {
  // Only a user can upload their file, but anyone can view it
  match /users/{userId}/{fileName} {
    allow read ;
    allow write: if request.auth != null && request.auth.uid == userId;
  }
}

位置

/b/online-notepad-d43d2.appspot.com/o/WkqtgpdUYRUGOBaAfmCByXtVPoT2/file1.txt

提供者

“密码”

FIREBASE UID

WkqtgpdUYRUGOBaAfmCByXtVPoT2

电子邮件

hgaur701@gmail.com

电子邮件已验证

是的

身份验证负载

{
  "uid": "WkqtgpdUYRUGOBaAfmCByXtVPoT2",
  "token": {
    "sub": "WkqtgpdUYRUGOBaAfmCByXtVPoT2",
    "aud": "online-notepad-d43d2",
    "email": "hgaur701@gmail.com",
    "email_verified": true,
    "firebase": {
      "sign_in_provider": "password"
    }
  }
}

屏幕截图

我正在使用的确切位置:“/WkqtgpdUYRUGOBaAfmCByXtVPoT2/file1.txt” 还有一件事我从上传按钮上传了这个文件夹和文件。 不是来自 POST 请求。

仍然得到相同的结果:(

【问题讨论】:

  • 您可以编辑您的示例以显示您正在阅读的整个路径吗?使用短 UID 通常最适合此操作。
  • @FrankvanPuffelen 请检查此编辑。我正在使用的确切位置:“/WkqtgpdUYRUGOBaAfmCByXtVPoT2/file1.txt”还有一件事我从上传按钮上传了这个文件夹和文件。不是来自 POST 请求。这是用户 UID WkqtgpdUYRUGOBaAfmCByXtVPoT2。
  • 您访问的不是/users/$uid,而是未声明访问权限的/$uid。请参阅下面对我的答案的编辑以获得更长的解释。
  • 虽然您在新测试中可能仍然没有权限,但原始屏幕截图中的错误是您访问的路径您没有声明任何访问权限。 --- 我不确定在新情况下出了什么问题。
  • 下载 URL 为拥有该 URL 的任何人提供公共访问权限。它们不需要身份验证,这也意味着如果您想通过安全规则保护读取访问权限,则不应使用下载 URL。

标签: firebase-authentication firebase-storage firebase-security


【解决方案1】:

在这里定义两个完全独立的子句:

allow read ;
allow write: if request.auth != null && request.auth.uid == userId;

所以你有一个空的读子句和一个非空的写子句。

您可能想使用:

allow read, write: if request.auth != null && request.auth.uid == userId;

编辑第二个问题:正如您在编辑中所说,您正在访问路径/WkqtgpdUYRUGOBaAfmCByXtVPoT2/file1.txt,但您的规则仅定义了match /users/{userId}/{fileName} 的访问权限。由于您只允许在/users/... 中访问,而您尝试使用的路径不在/users 中,因此规则拒绝访问。

【讨论】:

  • @Frank_van_Puffelen 仍然得到相同的结果“模拟读取被拒绝”?
猜你喜欢
  • 2017-01-10
  • 2016-11-27
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
相关资源
最近更新 更多