Firestore 安全规则:权限不足

Firestore Security Rules: Insufficient permissions

我需要一些帮助来制定我的 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 数组。

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

感谢任何帮助(包括"there's obviously a better way to do this")

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