Правила безопасности Firestore - считайте количество в пакете - PullRequest
2 голосов
/ 13 марта 2020

Если в пакете я обновляю документы A и B, а правило для A выполняет getAfter(B), а правило для B - getAfter(A), взимается ли с меня 2 чтения за них или нет? Так как они в любом случае являются частью пакета.

Примеры правил:

match /collA/{docAid} {
  allow update: if getAfter(/databases/$(database)/documents/collA/${docAid}/collB/{request.resource.data.lastdocBidupdated}).data.timestamp == request.time
    && ...
}

match /collA/{docAid}/collB/{docBid} {
  allow update: if getAfter(/databases/$(database)/documents/collA/${docAid}).data.timestamp == request.time
    && getAfter(/databases/$(database)/documents/collA/${docAid}).data.lastdocBidupdated == docBid
    && ...
}

Так это 2 чтения, по одному на правило или вообще без чтения?

Ответы [ 2 ]

1 голос
/ 14 марта 2020

FireBaser здесь

Я должен был проверить с нашей командой для этого. Первый отзыв заключается в том, что он не учитывается в отношении максимального количества вызовов, которые вы можете сделать за один прогон оценки правил безопасности.

Таким образом, предполагается, что это, вероятно, также не будет учитываться при чтении документов, поскольку фактически не читает документ. Это сказало: я спрашиваю вокруг немного больше, чтобы видеть, могу ли я получить это подтвержденное, так что держитесь крепче.

0 голосов
/ 14 марта 2020

Используете ли вы два разных документа?

Если это так, то будут выполнены два чтения.

...