Firestore规则:最多可评估1000个表达式

时间:2019-04-12 12:21:11

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

我向应用程序添加了新功能,现在出现此错误:

  

已达到最多1000个要评估的表达式

由消防站规则引发。

由于似乎对于该特定写入而言,要执行的控制要少得多,所以我想提出一些建议以避免这种行为或引入一些漏洞。

  • 逻辑表达式是否短路?
  • 什么是表达式?
  • 此限制会延长吗?

您对避免此问题有任何建议吗?

1 个答案:

答案 0 :(得分:1)

逻辑表达式短路。

表达式是可以求值的任何东西。例如,true是一个表达式。 false || false是三个表达式。

没有更改限制的路线图。设置此限制是为了防止每个操作占用过多的资源。还请记住,安全规则是免费的(文档访问除外),而且免费提供的内容始终受到严格限制。

由于我们看不到您的规则,因此实际上不可能推荐确切的建议。您应该考虑使用函数来减少为某些访问而评估的表达式数量。如果您发现自己经常输入类似request.resource.data.foo之类的内容,请考虑使用一个函数并将request.resource.data传递给该函数以提取值,而不是反复计算三个表达式的request.resource.data