Правила Облако Firestore - PullRequest
       40

Правила Облако Firestore

0 голосов
/ 25 сентября 2019

Мне было интересно, можно ли пересекать коллекции, чтобы установить правило.Может быть, смешивая exists() и get()?

Мой Collection выглядит так:

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

Я хотел бы проверить (с моими словами), если:

  1. Существует a Document in BusinessOwners
  2. С userID == request.auth.uid && businessID == IDspecified

Моя часть совпадения будет выглядеть так:

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

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

Могу ли я это сделать?Если да, то как?

1 Ответ

1 голос
/ 25 сентября 2019

Это невозможно в точности, как вы описали, потому что вы не можете выполнять запросы в правилах безопасности.Единственный способ получить доступ к документам, отличным от того, к которому осуществляется доступ, - это если вы знаете полный путь, включая идентификатор документа.Если вы знаете путь, вы можете использовать get() и exists() с этим путем.Но вы просто не можете запросить коллекцию с условиями.

...