当前位置: 首页 > 知识库问答 >
问题:

以编程方式创建火还原触发器?

周涵畅
2023-03-14

有没有办法以编程方式创建firestore触发器?

我希望使用火还原触发器来保持复合对象在初始化位置的一致性-

但是,我不需要查看集合中的每个“主要”文档,因为只有有限数量的“主要”对象具有“次要”关系——我的假设是,只查看特定文档而不是整个集合将提高总体性能并降低成本,因为触发器只会为相关的文档触发文档,与集合中的文档总数相比,要侦听的文档数量要少得多

虽然我可以将这些具有该关系的文档放在一个单独的集合中,并在其中添加一个通配符触发器,但我不想这样做,因为我希望保持集合的一致性,并减少在整个应用程序中查询/更新“主”文档的开销。

相反,我想知道是否有一种方法可以在创建新关系时动态地向特定的“主”文档添加触发器?

或者,如果我为整个集合添加多个单文档稀疏触发器,而不是添加一个通配符侦听器,那么从性能/成本角度来看,这真的很重要吗?

共有2个答案

郎嘉树
2023-03-14

根据Doug的回答,我最终为整个集合设置了一个whildcarded触发器,并在“primary”文档中添加了一个标志字段,指示是否存在要更新的关系。

这有助于最小化触发器内部的冗余工作,以节省CPU/内存/额外请求,并仅基于标志字段执行附加逻辑。

孙莫希
2023-03-14

当使用Cloud Functions触发器时,Fi还原数据库没有已知的性能缺点。数据库只是在更改发生后异步发出事件。它们不会影响数据库的性能。

添加新触发器的唯一方法是执行部署过程。通常情况下,这将发生在Firebase CLI或gCloud上。如果不想使用这些CLI中的任何一个,则必须使用Cloud Functions REST API。这是非常重要的设置和使用。由你来决定这是否值得。

 类似资料:
  • 问题内容: 我想在运行时触发一个元素,例如: 要么 如何才能做到这一点? 问题答案: 语法如下: 有关Angular Extend方式的更多信息,请参见此处。 如果使用的是 旧版本的angular ,则应使用 trigger 而不是 triggerHandler 。 如果需要应用停止传播,则可以按以下方式使用此方法:

  • 问题内容: 我一直在尝试以编程方式重做我的应用程序上的工作。(不使用情节提要) 除了手动制作导航控制器外,我几乎完成了。 我一直在做一些研究,但找不到任何手动实现此方法的文档。(我开始将应用程序制作为单视图应用程序) 目前,我只有1个ViewController。当然是appDelegate 导航控制器将在应用程序的所有页面中使用。 如果有人可以帮助我,或发送指向一些适当文档的链接以编程方式进行此

  • 问题内容: 如果我去这里 然后单击“启动演示模态”,即可完成预期的操作。我将模式用作注册过程的一部分,并且涉及服务器端验证。如果有问题,我想将用户重定向到显示我的验证消息的相同模式。目前,除了用户的物理点击之外,我无法弄清楚如何显示模式。如何以编程方式启动模型? 问题答案: 为了手动显示模式弹出窗口,您必须执行此操作 以前,您需要使用对其进行初始化,以便在您手动执行之前不会显示它。 模态容器的ID

  • 我需要将基于“SNS”的触发器添加到Lambda函数中,但要创建事件源映射-AWS CLI命令参考中只显示DynamoDB、Kinesis、SQS。 用于基于SNS、S3等的触发器的aws lambda create event source mapping命令失败,原因是事件源arn: 调用CreateEventSourceMaps操作时发生错误(InvalidParameterValueExc

  • 问题内容: 我知道我可以使用Java中的 api 以编程方式创建文件,如下所示: 但是是否有任何 API 可以构建树?(例如Dom之类的api) 我需要这样的东西: 和: 提前致谢。 问题答案: 由于XSLT也是XML,因此您可以简单地使用相同的策略: 等等… 但这不是很优雅。您应该改用库或框架,但应该很容易找到一个谷歌浏览器。

  • 我有一个WS,它返回非常基本的产品数据:代码、价格和图像。我需要用这些基本数据以编程方式创建Hybris产品,然后进行同步,以便在店面上看到这些产品。 创建具有这些基本信息的产品的步骤是什么?有OOTB服务吗?