Firestore规则:已达到最多要评估的1000个表达式

问题描述 投票:0回答:1

我为我的应用程序添加了一个新功能,现在我收到了这个错误:

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

由火库规则引发。

因为它似乎有更少的1000控件要完成特定的写,我想问一些建议,以避免这种行为或引入一些漏洞。

  • 逻辑表达式是否被短路?
  • 什么被定义为表达?
  • 这个限制会延长吗?

你有什么建议可以避免这个问题吗?

firebase google-cloud-firestore firebase-security-rules
1个回答
1
投票

逻辑表达式被短路。

表达式是评估某个值的任何东西。例如,true是一个表达式。 false || false是三个表达方式。

没有路线图可以更改限制。限制已到位,以防止每个操作使用过多的资源。还要记住安全规则是免费的(文档访问除外),并且总是会对免费提供的内容进行严格限制。

由于我们无法看到您的规则,因此无法推荐确切的建议。您应该考虑使用函数来减少为某些访问评估的表达式的数量。如果你发现自己经常输入像request.resource.data.foo这样的东西,可以考虑使用一个函数并将request.resource.data传递给它来提取值而不是重复评估request.resource.data,这是三个表达式。

© www.soinside.com 2019 - 2024. All rights reserved.