Google cloud firestore 以编程方式创建firestore触发器?

Google cloud firestore 以编程方式创建firestore触发器?,google-cloud-firestore,google-cloud-functions,Google Cloud Firestore,Google Cloud Functions,有没有办法以编程方式创建firestore触发器 我希望使用firestore触发器来保持复合对象在主->次关系中的一致性,如果“主”发生更改,“次”必须相应地更新 但是,我不需要监视集合中的每个“主要”文档,因为只有有限数量的“主要”对象具有“次要”文档关系-我的假设是,只查看特定文档而不是整个集合将提高整体性能并降低成本,因为触发器只会针对相关文档触发,假设要侦听的文档数量与集合中的文档总数相比要少得多 虽然我可以将这些具有关系的文档放在一个单独的集合中,并在其中添加一个通配符触发器,但我不

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

我希望使用firestore触发器来保持复合对象在主->次关系中的一致性,如果“主”发生更改,“次”必须相应地更新

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

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

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


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

使用云函数触发器时,Firestore数据库没有已知的性能劣势。数据库只是在发生更改后异步发出事件。它们不会影响数据库的性能


添加新触发器的唯一方法是完成部署过程。通常情况下,Firebase CLI或gcloud会出现这种情况。如果您不想使用这些CLI中的任何一个,则必须使用。这是非常不平凡的设置和使用。由您决定这是否值得。

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


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

您是在谈论Firestore的云函数触发器吗?@DougStevenson是的,没错。但是,如果云函数触发器无法实现这一点,如果有其他类型的触发器可以实现这一点,我们将非常感谢您的输入。