Firestore规定了为什么这不起作用?

时间:2018-06-11 06:51:35

标签: google-cloud-firestore

我在根级别上有tasks集合,这是我的规则(是的,现在是超级全局):

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read: if resource.data.private == false;
      allow write: if request.auth.uid != null;
    }
  }
}

单个任务有字段private: Boolean,我想为所有具有private: false的任务授予读取权限,并且只允许登录用户写入。

firestore.collection('/tasks').onSnapshot(snapshot => {})

至少使用onSnapshot,此读取规则不起作用。我给出了一个错误:

Uncaught Error in onSnapshot: Error: Missing or insufficient permissions

我是在做错事还是在这里发生了什么?

1 个答案:

答案 0 :(得分:0)

显然“您无法查询您无权访问的数据”。由于只有private: false个任务可读,因此应该从中更改查询:

firestore.collection('/tasks').onSnapshot(snapshot => {})

以下:

firestore.collection('/tasks').where('private', '==', false).onSnapshot(snapshot => {})

在仅请求我有权访问的数据后,它开始工作了!