【问题标题】:Trigger function on batch create with firebase使用firebase批量创建触发功能
【发布时间】:2023-03-18 23:31:01
【问题描述】:

在我的应用中,我有两种创建用户的方式。 一个是触发云函数 onCreate 以发送电子邮件并执行其他一些逻辑的单个添加。 另一种是批量处理,最终为每个添加的文档触发相同的功能。

问题是如何在批量添加用户时触发不同的功能?

我查看了 firebase 文档,它似乎没有这个功能。我错了吗?

这将大大有助于减少阅读次数,我可以批量发送电子邮件给添加的用户,而不是一个一个地发送。

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    创建文档的云函数触发器只有一个。

    你可以做的是让两个不同的函数使用相同的触发器和 incode 来区分这两种创建方法。

    这可能类似于向文档添加另外两个值:

    • creation_method
    • 批次

    使用创建方法,您可以在每个文档上评估其值,以验证执行是继续执行还是在该点完成。

    batch 可用于在创建的批次中标识整个批次。

    对于creation_method,我建议使用不同的值:

    • 单数
    • batch_normal
    • batch_final

    在 Batch 上只有一个 batchID

    对于单数创建的函数,验证是单数,仅此而已。

    对于批处理函数,使其仅在 batch_final 状态下继续并获取具有相同 batchId 的所有值。

    这种方法不会像 reads are billed for each document 那样减少读取次数,因此除非您依赖其他文档,否则读取次数将是相同的。

    作为一种解决方法,如果您想减少每次读取的费用,您可以将您提到的触发器更改为 Realtime Databaseexist,它的优点是不为读取计费。

    【讨论】:

    • 感谢您的回复。一个问题仍然存在。我们确定批次创建文档的顺序与通过 batch.set(docRef, obj) 添加文档时设置的顺序相同吗? ?
    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2020-10-20
    相关资源
    最近更新 更多