当我打开Firebase存储桶并转到文件时,我具有以下文件夹结构:
/<environment>/reports/<userId>/
我希望只允许通过身份验证的userId
读取,将报告写入该用户文件夹中。
我尝试了以下操作,但是它给了我消息,拒绝访问。我究竟做错了什么?我从docs复制了几乎一对一的示例。
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/{bucket}/o {
// Files look like: "<ENVIRONMENT>/reports/<UID>/path/to/file.txt"
match /production/reports/{userId}/{allPaths=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
答案 0 :(得分:1)
您可以使用Firebase Storage Console中的规则模拟器来测试您的规则。我已经测试了您的设备,它们似乎工作正常:
您需要记住指定诸如/production/reports/{userId}/test
之类的最终节点名称,以便该规则生效,因为由于/{allPaths=**}
,它将匹配存储桶文件名而不是父目录。