我正在尝试为Firestore数据库设置规则。
我在设置嵌套对象的规则时遇到了一些麻烦。
数据库结构如下所示:
用户(用户对象的集合)
----- userDocument(文档名称与auth-users uid匹配)
----------------- users(用户的子集合)
------------------------- userdocument(文档名称与auth-users uid匹配)
注意:最后一个userDocument不包含任何引用。
他在主要的用户集合中有自己的文档。
我希望每个用户都对Users集合中的每个用户具有读/写访问权限,这些用户在其用户子集中具有匹配的用户ID。 此外,任何用户都应该能够在数据库上创建新用户,只要他们使用firebase Auth进行身份验证。
我尝试过以下解决方案,它不起作用:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}{
allow read, write: if exists(/databases/$(database)/documents/users/userId/users/$(request.auth.uid)) || userId == request.auth.uid;
}
}
}
用户的子集合中有1个用户,因此用户应该有权读取/写入自己的用户,并且qb2pa1TWXHZr0NZUREealgWrOYb2。
答案 0 :(得分:1)
我找到了一个有效的解决方案,我希望这有助于将来的某个人。
所有内容都经过全面测试,评论和工作。
UpdateClient