检查字段存在的Firestore规则会导致权限丢失或不足

时间:2018-03-08 20:32:14

标签: firebase google-cloud-firestore

我的firestore数据库上有一条读取规则,如下所示:

match /messages/{document=**} {
      allow read: if (resource.data.account_id == request.auth.uid 
      && resource.data.keys().hasAll(['is_note']))
      || request.auth.token.role.FirebaseAdminIssuer == true;
    }

我认为这应该会向用户返回account_id字段与其uid匹配的所有文档以及文档中包含名为is_note的字段的位置。

如果我有第一条规则:

match /messages/{document=**} {
          allow read: if resource.data.account_id == request.auth.uid 
          || request.auth.token.role.FirebaseAdminIssuer == true;
        }

这准确地为我提供了account_id字段与用户uid匹配的文档。

但是,当我手动将一个名为is_note的布尔字段添加到某些(并非所有)文档并将规则设置为限制为也包含该文档的文档时,我得到Error: Missing or insufficient permissions.

我的规则有问题吗?

仅供参考我使用此处的文档来确定要使用的规则:https://cloud.google.com/firestore/docs/reference/security/#firestore-resource

0 个答案:

没有答案