设置文档及其所有子集合的权限

时间:2019-03-29 23:46:19

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

我遇到了错误: FirebaseError: Missing or insufficient permissions尝试查看子集合中的文档时。我正在尝试获取子集合“设置”中的文档“字符”。

systemsCol()
  .doc(localStorage.getItem("systemId"))
  .collection('settings')
  .doc('character')

如何为每个“系统”文档设置所有项目和子文档?

这是我的权限

service cloud.firestore {
    function authed (auth, data){
    return auth.uid == data.owner.uid || auth.token.email in data.collaborators;
  }

    match /databases/{database}/documents {
    match /systems {
      allow read, write: 
        if request.auth.uid != null;

      match /{systemId}  {
        allow list, create:
            if request.auth.uid != null;
        allow get, update, delete: 
          if authed(request.auth, resource.data);
            }

      match /{systemId}/{document=**} {
        allow read, write: 
            if authed(request.auth, resource.data);
      }
    }
  }
}

也尝试过

service cloud.firestore {
    function authed (auth, data){
    return auth.uid == data.owner.uid || auth.token.email in data.collaborators;
  }

    match /databases/{database}/documents {
    match /systems {
      allow read, write: 
        if request.auth.uid != null;

      match /{systemId} {
        allow list, create:
            if request.auth.uid != null;
        allow get, update, delete: 
          if authed(request.auth, resource.data);

                match /{document=**} {
          allow read, write:
            if authed(request.auth, get(/systems/{systemId}).data);
        }
      }
    }
  }
}

0 个答案:

没有答案