firebase - Firestore 规则:已达到最多 1000 个要评估的表达式
问题描述
我向我的应用程序添加了一个新功能,现在我收到了这个错误:
已达到最多 1000 个要评估的表达式
由firestore规则提出。
因为对于那个特定的写入,似乎要做的 1000 个控件要少得多,我想请教一些建议来避免这种行为或引入一些漏洞。
- 逻辑表达式是否短路?
- 什么被定义为表达?
- 这个限制会延长吗?
你有什么建议可以避免这个问题吗?
解决方案
逻辑表达式短路。
表达式是任何计算出某个值的东西。例如,true
是一种表达方式。 false || false
是三个表达式。
没有改变限制的路线图。设置限制是为了防止每个操作都使用过多的资源。还要记住,安全规则是免费的(文档访问除外),而且对免费提供的内容总是有严格的限制。
由于我们看不到您的规则,因此实际上不可能推荐准确的建议。您应该考虑使用函数来减少为某些访问评估的表达式数量。如果您发现自己输入request.resource.data.foo
了很多东西,请考虑使用一个函数并将其传递request.resource.data
给它以提取值而不是request.resource.data
重复评估,这是三个表达式。
推荐阅读
- excel - 查找一行中 3 个连续阳性单元格中第一个的列号
- c# - 在自定义工具窗口的用户控件中使用数据绑定
- python - 如何使用 Numpy.gradient 制作正确的渐变图
- react-native - 如何修复“需要未知模块“573”。在反应原生?
- typescript - 打字稿:在条件语句中使用条件类型
- android - BiometricPrompt 提示未本地化
- node.js - 如何让 ExpressJS 重新加载脚本正在开发中?
- javascript - 使用 fetch 将数据传递给带有 ajax 的 Flask 服务器导致错误的请求错误
- node.js - 搜索时跳过奇数个前面的符号
- c - 修改由 const char 数组引用的非 const char 数组