我有一个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相同)。
谢谢
答案 0 :(得分:0)
很有可能{userId}
不是文档ID,因此request.auth.uid
与{userId}
不同
在创建文档时,请确保指定文档ID,并且它应能按预期工作。