我想用firebase安全规则限制对组数据的访问。
每个用户都有一个userId,并且可以在多个组中。
同一组中的所有参与者都应该能够对所有参与者的组进行更改。
例如,应该允许用户Wrrhks98BUSLLoGfnUswt2FE57s
对用户CCD_ 3 的组文档CCD_
总体结构:
collection (groups)
--> Document (userId)
--> Collection (userId)
--> Document(groupId)
示例:
collection (groups)
--> Document (2B0ABrxKXzr9UdmCP8TuMgqrtBI3)
--> Collection (2B0ABrxKXzr9UdmCP8TuMgqrtBI3)
--> Document(-JrwbcP1OdmjUWxTWHJk)
--> Document(-Mrwtjko3dmjUWxTWHJl)
--> Document(-LrwbcPtujdqcWxTWHJe)
--> Document (Wrrhks98BUSLLoGfnUswt2FE57s)
--> Collection (Wrrhks98BUSLLoGfnUswt2FE57s)
--> Document(-JrwbcP1OdmjUWxTWHJk)
我试过了,但不起作用:
match /groups/{userId}/{userId2}/{groupId} {
allow read, write: if exists(/databases/$(database)/documents/groups/$(request.auth.uid)/$(request.auth.uid)/groupId)
}
我找到了解决方案:-(
简单地说:
match /groups/{userId}/{userId2}/{groupId} {
allow read, write: if exists(/databases/$(database)/documents/groups/$(request.auth.uid)/$(request.auth.uid)/$(resource.data.id))
}