【发布时间】:2020-11-08 20:05:42
【问题描述】:
当我尝试从集合中检索具有特定属性的所有文档时,我收到 FirebaseError: Missing or insufficient permissions. 错误。需要明确的是,这是在 Firestore 规则级别,而不是应用程序级别 - 我没有在处理 .where() 查询。
我的 firebase 规则目前如下所示:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /projects/{project} {
allow read: if resource.data.visible == true; // This condition seems to be the problem child
allow write: if false;
}
}
}
我已通过将request.auth != null 替换为request.auth != null 确认导致问题的原因是resource.data.visible == true,在这种情况下不会引发错误并且它会返回所有文档。
这是我的一份文件的截图:
另一个被审查文档的visible 属性设置为false。
这是我用来访问 Firestore 的 (JavaScript) 代码:
firebase.firestore().collection('projects').onSnapshot(snap => {
console.log('snap:', snap);
}, err => {
console.error(err); // Here's where the error gets thrown
});
如果我需要添加任何其他信息,请告诉我。
【问题讨论】:
标签: javascript firebase google-cloud-firestore firebase-security