出于某种原因,我可以运行规则模拟器,它运行得非常完美(拒绝读取专门设置为false的文档),但如果从以下位置删除"Where“语句,js应用程序仍然会提取所有文档:
firebase.firestore().collection('live').where('dedicated', '==', false).onSnapshot
to
firebase.firestore().collection('live').onSnapshot我需要能够列出文档,但不能阅读那些专用= true的文档。我知道规则不是过滤器,但我计划保留where语句,并且仍然希望限制对某些文档的访问以确保安全性。
规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /live/{document} {
allow list: if true;
allow read: if resource.data.dedicated == false;
}
...发布于 2022-02-19 05:06:09
因为你的规定是:
allow list: if true;这意味着允许API调用不带任何条件地检索文档列表。
如果只允许第一个查询,则应使用:
allow list: if resource.data.dedicated == false;https://stackoverflow.com/questions/71182156
复制相似问题