规则云Firestore

时间:2019-09-25 16:43:43

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

我想知道是否可以跨馆藏设置规则。 也许通过混合exists()get()来实现?

我的Collection就像这样:

- BusinessOwners
      |
      |_ autoID ___ businessID: String
                 |_ userID: String
      |
      |_ autoID ___ businessID: String
                 |_ userID: String

我想检查一下:

  
      
  1. 存在Document中的BusinessOwners
  2.   
  3. 使用userID == request.auth.uid && businessID == IDspecified
  4.   

我的匹配部分是:

function isOwnerOfTheBusiness(IDspecified){
    return ???;
}

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

我可以这样做吗?如果是,怎么办?

1 个答案:

答案 0 :(得分:1)

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