在Firestore中,我定义了这样的规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, list: if request.data.visibility == "public";
}
}
}
然后我想获取所有公共文档,因此我使用AngularFire订阅了该集合:
this.docs = db.collection('documents', ref => ref.where("visibility", "==", 'public')).snapshotChanges();
但是这引发了:
缺少权限或权限不足。
这应该发生吗?是否可以使用受限文档迭代集合?我不是副收藏的忠实粉丝,但这是实现这一目标的唯一途径吗?
答案 0 :(得分:2)
解决了,我错过了列表规则,而且我也没有添加文档集合。最终的规则是:
service cloud.firestore {
match /databases/{database}/documents {
match /documents/{document=**} {
allow read, list: if resource.data.visibility == "public"
}
}
}