Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如果我';我在检查数组?_Firebase_Google Cloud Firestore_Nosql_Firebase Security - Fatal编程技术网

Firebase 如果我';我在检查数组?

Firebase 如果我';我在检查数组?,firebase,google-cloud-firestore,nosql,firebase-security,Firebase,Google Cloud Firestore,Nosql,Firebase Security,我有一组邀请,但出现权限不足错误 数据 还有一个团队 "teamID" : { ... managers: [managerID, ...] ... } 请回答以下问题: 团队经理 这个问题似乎很直截了当 db.collections('invites').where('teamID', '==', myTeamID) 但是规则必须检查询问的人是否是经理 match /invites/{inviteID} { function isManager() {

我有一组邀请,但出现权限不足错误

数据 还有一个团队

"teamID" : {
  ...
  managers: [managerID, ...]
  ...
}
请回答以下问题:

团队经理 这个问题似乎很直截了当

db.collections('invites').where('teamID', '==', myTeamID)
但是规则必须检查询问的人是否是经理

match /invites/{inviteID} {
      function isManager() {
        // managers is an array
        return get(/databases/$(database)/documents/teams/$(resource.data.teamID)).data.managers.includes(request.auth.uid)     
      }
            allow read: if (isManager())
    }
我也有这条失败的规则,这有关系吗

    // Allow user to read his own invites
    match /invites/{inviteID} {
        allow read: if (request.auth.token.email == resource.data.playerEmail)
    }
与同一文档匹配的第二条规则将失败,因为显然邀请与经理的电子邮件不同。我需要这个规则作为一个单独的查询,允许用户查询他们的邀请


似乎没有阅读,我有权限问题。谢谢你的帮助

所以我把规则改为

return request.auth.uid in get(/databases/$(database)/documents/teams/$(resource.data.teamID)).data.managers
这似乎解决了我的权限错误

return request.auth.uid in get(/databases/$(database)/documents/teams/$(resource.data.teamID)).data.managers