Mak*_*nko 12 firebase firebase-realtime-database google-cloud-functions
在我们的Firebase应用程序中,有一个包含实时数据库中的大量项目的列表.单个项目的每个创建,更新和删除操作都由具有onWrite触发器的Firebase云功能处理(在最简单的情况下,此功能只计算项目).但有时需要对物品进行批量操作而无需单独处理.假设我们希望在单个事务中删除所有项目并重置计数器.
早些时候它工作得很好.由于单次写入(https://firebase.google.com/docs/database/usage/limits)触发的云功能数量限制为1000 ,因此根本没有触发任何功能,这是期望的结果.
现在,如果不对应用程序代码进行任何更改,我们就会出错
错误:TOO_MANY_TRIGGERS:此请求会导致触发太多功能.
客户端应用程序,Admin API中甚至在使用Web界面导入json时出现相同的错误.只有适用于我们的选项是批量处理项目.但它不是事务性的,需要花费几十分钟而不是像以前那样毫秒.
我们有什么选择可以绕过这个错误?最佳地,这将是在超过限制的情况下跳过功能触发的一些切换.
对于 2018 年后阅读此问题的任何人,现在可以选择禁用对触发限制的严格执行。
默认情况下,对触发事件的写操作启用严格验证。任何触发超过 1000 个云函数或大小超过 1 MB 的单个事件的写入操作都将失败并返回一个错误报告已达到的限制。这可能意味着,如果预验证失败,则某些 Cloud Functions 函数根本不会被触发。
如果您正在执行较大的写入操作(例如,删除整个数据库),您可能需要禁用此验证,因为错误本身可能会阻止操作。
要关闭strictTriggerValidation,请按照下列步骤操作:
curl -X PUT -d "false" https://NAMESPACE.firebaseio.com/.settings/strictTriggerValidation/.json?auth \=SECRET
有关文档,请参见此处:https : //firebase.google.com/docs/database/usage/limits
| 归档时间: |
|
| 查看次数: |
1126 次 |
| 最近记录: |