我的数据库包含一个名为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
消息。知道为什么吗?
答案 0 :(得分:2)
您已发布 firestore 规则,但您的代码表明您使用的是 firebase实时。您是否编辑了错误的规则,或者您在代码中使用了错误的对象/类。
以下代码段尝试访问 firebase实时数据库而不是firestore。
FirebaseDatabase.getInstance().getReference().child("users").orderByChild("nickname").equalTo(someNickname);
如果您使用的是Firestore,请检查documentation,以了解必须使用哪些类来访问Firestore。