Firebase规则-用户只能编辑其数据

时间:2019-10-17 15:59:31

标签: firebase google-cloud-firestore firebase-authentication firebase-security

我有一个firebase项目,正在使用FirebaseAuth和firebase数据库。

我只有一个名为baby的集合,具有名称(字符串),userId(字符串)和投票(整数)属性。 userId包含创建者的user.uid。

我想创建一个规则,以便只有创建者用户才能更新或删除文档。任何人都可以阅读,注册用户可以创建。

所以我有以下规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /baby/{userId} {
        allow read;
      allow create: if request.auth.uid != null;      
      allow update, delete: if request.auth.uid == userId;
    }
  }
}

这样,任何人都可以阅读,注册用户可以创建。但是,具有uid = userId的用户无法更新。 有人知道问题出在哪里吗?

我已经检查了数据库,并且文档的userID属性正确(与用户uid相同)。

谢谢

1 个答案:

答案 0 :(得分:0)

很有可能{userId}不是文档ID,因此request.auth.uid{userId}不同

在创建文档时,请确保指定文档ID,并且它应能按预期工作。