首页 > 解决方案 > 我如何允许用户仅修改自己的文件 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;
    }
  }
}

帮助我实现这一目标。谢谢

标签: firebasefirebase-storagefirebase-security

解决方案


像这样识别每个 UID 文件夹:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /profiles/{uid}/posts/{allPaths=**} {
      allow read, write: if request.auth.uid == uid;
    }
  }
}

我强烈建议在文档中阅读有关每用户身份验证规则的更多信息。


推荐阅读