【发布时间】:2020-08-03 07:16:29
【问题描述】:
就在我以为我掌握了窍门的时候,查询规则给了我一个曲线球:(
我有这个查询规则:
// Needed for collection group (Member) query
// https://firebase.googleblog.com/2019/06/understanding-collection-group-queries.html
match /{rootPath=**}/Members/{member} {
allow read: if request.auth != null;
}
这是非常基本的,只需要授权用户。集合组查询按预期完美运行。
现在,我想进行另一个查询以获取成员文档:
Firebase.firestore.collection("Companies\\$companyID\\Members").get().await()
查询返回错误 (PERMISSION_DENIED)。
我也尝试为这样的成员添加规则:
match /Companies/{companyID} {
allow read: if request.auth != null &&
isMember(database, companyID, request.auth.uid)
match /Members/{member} {
allow read: if request.auth != null
}
}
还是一样的错误。
这是文档路径:
我查看了一些资源,但没有看到任何可以提出解决方案的建议:
【问题讨论】:
-
您可以尝试使用 Firebase.firestore.collection("Companies\\$companyID\\Members").get().await() 来添加 FieldPath 吗?
-
抱歉,我不明白这个建议?我看不出您的建议与上面发布的现有代码有何不同。查询有效,显然是安全规则无效。
-
对不起,我误解了这个问题。问题仍然存在吗?
-
是的,问题仍未解决
标签: firebase google-cloud-firestore firebase-security