首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Firebase错误: TOO_MANY_TRIGGERS

Firebase错误: TOO_MANY_TRIGGERS
EN

Stack Overflow用户
提问于 2018-06-03 01:01:03
回答 3查看 2K关注 0票数 13

在我们的Firebase应用程序中,Realtime Database中有一个包含大量项目的列表。对单个项目的每个创建、更新和删除操作都是由带有onWrite触发器的Firebase Cloud Function处理的(在最简单的情况下,该函数只计算项目)。但有时需要对项目进行批量操作,而不需要单独处理。假设我们想要在单个事务中删除所有项目并重置计数器。

早些时候,它运行得很好。由于单次写入(https://firebase.google.com/docs/database/usage/limits)触发的云函数数量限制为1000个,因此根本没有函数被触发,这是预期的结果。

现在,如果不对应用程序代码进行任何更改,我们就会出现错误

错误: TOO_MANY_TRIGGERS:此请求将导致触发太多函数。

同样的错误出现在客户端应用程序、管理API中,甚至在使用web界面导入json时也是如此。对于我们来说,唯一可行的选择就是批量处理项目。但它不是事务性的,需要花费数十分钟,而不是像以前那样需要几毫秒。

我们有什么选择来绕过这个错误呢?最佳情况下,这将是在超过限制的情况下跳过功能触发的切换。

EN

回答 3

Stack Overflow用户

发布于 2018-06-03 01:13:03

目前没有办法阻止触发器在特殊情况下运行。解决这个问题的唯一方法是取消部署所有触发器,执行更新,然后再次部署所有触发器。

票数 6
EN

Stack Overflow用户

发布于 2019-10-08 18:47:45

对于2018年后阅读此问题的任何人,现在可以选择禁用触发限制的严格执行。

对于触发事件的写操作,默认情况下会启用严格验证。任何触发超过1000个云函数或单个事件大小超过1MB的写操作都将失败,并返回错误,报告命中限制。这可能意味着,如果一些云函数未能通过预验证,则根本不会触发它们。

如果您正在执行较大的写入操作(例如,删除整个数据库),则可能需要禁用此验证,因为错误本身可能会阻止该操作。

要关闭strictTriggerValidation,请执行以下步骤:

  • 从Firebase控制台中项目设置的服务帐户选项卡中获取数据库密码。
  • 从命令行运行以下CURL请求: curl -X PUT -d "false“curl

请看这里的文档:https://firebase.google.com/docs/database/usage/limits

票数 6
EN

Stack Overflow用户

发布于 2021-12-29 22:51:47

我刚刚在一个很久没有接触过的更老的Flutter项目中收到了这个错误消息。

firebase_database/未知TOO_MANY_TRIGGERS:此请求将导致触发太多函数。

事实证明,这是因为我的云函数仍然设置为使用节点v8,该节点已于2021年初停用。

升级云函数以使用Node v12 (不需要其他更改)为我删除了错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50659206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档