我在根级别有 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 回答
显然"you can't query data you have no access to" . 因为只有
private: false
任务是可读的,所以应该从中更改查询:以下:
在仅请求我有权访问的数据后,它开始工作了!