Firebase Firestore - 使用受限制的安全规则迭代集合

时间:2017-11-16 10:57:38

标签: security firebase angularfire google-cloud-firestore

在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();

但是这引发了:

  

缺少权限或权限不足。

这应该发生吗?是否可以使用受限文档迭代集合?我不是副收藏的忠实粉丝,但这是实现这一目标的唯一途径吗?

1 个答案:

答案 0 :(得分:2)

解决了,我错过了列表规则,而且我也没有添加文档集合。最终的规则是:

service cloud.firestore {
  match /databases/{database}/documents {
    match /documents/{document=**} {
      allow read, list: if resource.data.visibility == "public"
    }
  }
}