尽管有规则,但Firebase权限被拒绝

时间:2020-03-17 13:51:35

标签: android firebase google-cloud-firestore

我的数据库包含一个名为users的集合。此集合中的每个文档(用户)都包含一个字段nickname。我正在尝试让所有用户都使用某个昵称:

FirebaseDatabase.getInstance().getReference().child("users").orderByChild("nickname").equalTo(someNickname)

但是我不断得到:

Listen at /users failed: DatabaseError: Permission denied

所以我使用一个简单的规则将集合设为公开:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{user} {
      allow read: if true;
      allow create, write, delete: if false;
    }
  }
}

但是我仍然收到Permission Denied消息。知道为什么吗?

1 个答案:

答案 0 :(得分:2)

您已发布 firestore 规则,但您的代码表明您使用的是 firebase实时。您是否编辑了错误的规则,或者您在代码中使用了错误的对象/类。

以下代码段尝试访问 firebase实时数据库而不是firestore。

FirebaseDatabase.getInstance().getReference().child("users").orderByChild("nickname").equalTo(someNickname);

如果您使用的是Firestore,请检查documentation,以了解必须使用哪些类来访问Firestore。