首页 > 解决方案 > Firestore 规则:已达到最多 1000 个要评估的表达式

问题描述

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

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

由firestore规则提出。

因为对于那个特定的写入,似乎要做的 1000 个控件要少得多,我想请教一些建议来避免这种行为或引入一些漏洞。

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

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


逻辑表达式短路。

表达式是任何计算出某个值的东西。例如,true是一种表达方式。 false || false是三个表达式。

没有改变限制的路线图。设置限制是为了防止每个操作都使用过多的资源。还要记住,安全规则是免费的(文档访问除外),而且对免费提供的内容总是有严格的限制。

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


推荐阅读