firebase - 我如何允许用户仅修改自己的文件 Firebase 存储?
问题描述
我正在使用 Firebase 存储来存储用户的文件。我的存储结构如下图。我只想允许创建的文件用户修改他的文件而不是其他人。
profiles/uid/posts
posts/文件夹包含他所有上传的文件。我想限制其他用户修改此路径文件。他们可以看到我在profiles/uid/posts这个路径之间的所有文件。我目前的规则是:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
帮助我实现这一目标。谢谢
解决方案
像这样识别每个 UID 文件夹:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /profiles/{uid}/posts/{allPaths=**} {
allow read, write: if request.auth.uid == uid;
}
}
}
我强烈建议在文档中阅读有关每用户身份验证规则的更多信息。