Android客户端上的Firestore CollectionGroup PERMISSION_DENIED

时间:2019-06-01 19:07:41

标签: android firebase google-cloud-firestore firebase-security-rules

按照文档(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:缺少权限或权限不足。

2 个答案:

答案 0 :(得分:2)

您需要在路径中添加通配符变量,以使其适用于收集组查询。如果您阅读得更仔细,那就在文档中:)

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
   match /{path=**}/posts/{post} {
      allow read: if true;
    }
  }
}

答案 1 :(得分:-1)

作为对数据的执行写操作,根据您提供的信息未提供。 正如您在规则中所看到的那样,它仅授予读权限。还请提供写权限。您可以毫无问题地检索数据。