按照文档(https://firebase.google.com/docs/firestore/security/rules-query#collection_group_queries_and_security_rules)来测试集合组
Firestore安全规则
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /forums/{forumid}/posts/{post} {
allow read: if true;
}
}
}
在Android应用上查询(使用Firestore 19.0.1)
FirebaseFirestore.getInstance().collectionGroup("posts").get().addOnSuccessListener { queryDocumentSnapshots ->
Log.d(TAG, "queryDocumentSnapshots " + queryDocumentSnapshots.size())
}.addOnFailureListener {
Log.d(TAG, "exception" + it)
}
获取异常PERMISSION_DENIED:缺少权限或权限不足。
答案 0 :(得分:2)
您需要在路径中添加通配符变量,以使其适用于收集组查询。如果您阅读得更仔细,那就在文档中:)
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{path=**}/posts/{post} {
allow read: if true;
}
}
}
答案 1 :(得分:-1)
作为对数据的执行写操作,根据您提供的信息未提供。 正如您在规则中所看到的那样,它仅授予读权限。还请提供写权限。您可以毫无问题地检索数据。