【发布时间】:2020-12-07 01:35:17
【问题描述】:
我正在制作一个看起来像这样的结构:
users
user1
user2
user3
group
group1
group2
group3
subcollections1
subdoc11
subdoc12
subcollections2
subdoc21
subdoc22
所以解释一下,我有一个用户集合和组集合。所有用户必须属于一个且仅一个组。一个组有一个“成员”字段,我检查用户是否是成员。
所以我现在的规则是这样的。
match /groups/{document=**} {
allow read, write: if resource.data.users[request.auth.uid] != null;
}
我的问题是,即使在写入子集合时,它是否会准确检查用户是否在 group1->doc-'members' 中,还是会检查 group1->doc-> subcollection->doc-'members' 在那种情况下?
因为成员列表仅在组集合中,而不在子集合中,所以不需要第二种情况。
【问题讨论】:
-
当您自己测试规则时会发生什么?我不认为它会起作用,但老实说,这是你自己很容易找到的东西。
-
@DougStevenson 我将自己测试它,但老实说,它给我的印象是这应该通过以下方式实现:当它是组的文档时,读入 resource.data 当它是子集合时, 使用 get() 函数获取组的文档。这个问题是希望有知识的人能给我一个确认或建议。
-
Stack Overflow 的目的是帮助人们处理无法按预期方式工作的代码(提供调试细节),而不是预测某些代码是否会按预期工作。我建议阅读:stackoverflow.com/help/how-to-ask
标签: google-cloud-firestore firebase-security