在Firestore规则中多次获取文档

时间:2018-03-26 19:43:13

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

在为需要从单独的集合中提取文档的Firebase数据库编写规则时,不止一次引用该文档会有区别吗?

例如,这将导致otherStuff集合的单个查询:

// Rules single get
match /someData/{dataId} {
   allow read: if get(/databases/$(database)/documents/otherStuff/$(dataId)).data.allowRead == true
}

但是下面的代码会主动获得两次相同的文档吗?或者它是否已经过优化,只能获取一次?

// Rules twice get
match /someData/{dataId} {
   allow read: if get(/databases/$(database)/documents/otherStuff/$(dataId)).data.allowRead == true
&& get(/databases/$(database)/documents/otherStuff/$(dataId)).data.reallyAllowRead == true
}

1 个答案:

答案 0 :(得分:1)

在文档https://firebase.google.com/docs/firestore/security/rules-structure#security_rule_limits

中查看此部分

在针对单个规则的安全规则评估中,“对同一文档的多个请求不会被视为单独的请求。”