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 规则云Firestore_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Firebase 规则云Firestore

Firebase 规则云Firestore,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我想知道是否有可能跨集合设置规则。 可能是通过混合使用exists()和get() 我的收藏是这样的: - BusinessOwners | |_ autoID ___ businessID: String |_ userID: String | |_ autoID ___ businessID: String |_ userID: String 我想(用我的话)核实一下: 存在

我想知道是否有可能跨集合设置规则。 可能是通过混合使用
exists()
get()

我的
收藏
是这样的:

- BusinessOwners
      |
      |_ autoID ___ businessID: String
                 |_ userID: String
      |
      |_ autoID ___ businessID: String
                 |_ userID: String
我想(用我的话)核实一下:

  • 存在
    业务所有者中的
    文档
  • 使用
    userID==request.auth.uid
    和&
    businessID==IDspecified
  • 我的比赛部分如下:

    function isOwnerOfTheBusiness(IDspecified){
        return ???;
    }
    
    match /userresults/{docID} {
            allow write, read: if isOwnerOfTheBusiness(request.resource.data.businessID);
    }
    

    我可以这样做吗?如果是,如何执行?

    这与您描述的不完全一样,因为您无法在安全规则中执行查询。除正在访问的文档外,您可以访问其他文档的唯一方法是知道完整路径,包括文档ID。如果知道路径,您可以使用该路径使用
    get()
    exists()
    。但您无法查询带有条件的集合。

    完全正确。我自己也尝试过,但get()函数中不允许使用通配符。首先我真的不敢相信,所以我仔细检查了一下。我认为这样的规则太费时了。看起来,如果他真的想在安全规则级别上解决这个问题,他需要进行一些重构。