Firestore安全规则:权限不足

时间:2018-07-13 08:43:18

标签: google-cloud-firestore angularfire2 firebase-security-rules

我需要一些帮助来制定我的Firestore安全规则。

这些是我的Firestore规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      function isAdmin(uid) {
        return (uid in get(/admin/administrators).data.uid)
      }
      allow read;
      allow write: if request.auth.uid != null && isAdmin(request.auth.uid);
    }
  }
}

在文档/admin/administrators中,有一个名为uid的字段,其中包含允许写入数据库的管理员UID数组。

以一个这样的管理员身份登录并尝试将文档添加到另一个集合之后。 (具体来说,我在使用Angularfire 2的Angular应用程序中的调用是this.afStore.collection(collection).add({});。)我收到错误Error: Missing or insufficient permissions

任何帮助表示赞赏(包括“显然有更好的方法可以做到这一点”)

1 个答案:

答案 0 :(得分:0)

您应该输入要引用的集合的绝对路径。将(uid in get(/admin/administrators).data.uid)更改为get(/databases/$(database)/documents/admin/$(request.auth.uid)).data.uid