firebase - 如何在 Firebase 上进行事件驱动

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

我们的初创公司是使用 Firebase 和 Google Cloud 的“云原生”。我们正在研究事件驱动设计,但我很难将这个概念与 Firebase 或 GCP 上的特定服务相匹配。

示例:用户通过移动应用创建契约(Contract)草稿(Firestore 文档)。我们需要触发以下操作:

  • 通过电子邮件通知作为契约(Contract)当事方的其他用户,以及 推送通知
  • 写入通知表,以便用户可以在 应用并将其标记为已读或已删除
  • 生成一个将在一个月内轮询契约(Contract)的工作,如果它这样做 不改变状态,删除契约(Contract)
  • 在服务器上运行一系列计算

到目前为止,我们设法将这些操作放入 Cloud Function 触发器中,但我们的触发器代码变得困惑,并且在极少数情况下,操作会超过 Cloud Function 阈值(2GB 和 9 分钟)。

我们计划改进代码库并减少基于触发器的操作:

  1. 用户正在创建契约(Contract) (Cloud Firestore)
  2. Cloud Firestore 触发器创建一个事件(Cloud Functions)
  3. 需要对其进行处理的服务订阅事件流并执行适当的操作。 (这里有什么?)

我调查了 Pub/Sub,但认为这有点矫枉过正,因为我们不必过多地处理 GCP 之外的服务,而且我们的规模不需要它 atm。我们能否在 Firebase 工具领域内实现上述目标?

最佳答案

Pubsub 实际上正是您所需要的。这并不过分 - 它是 Google Cloud 中处理事件订阅的常见且首选的解决方案。事实上,Cloud Functions 已经构建在 pubsub 之上。

Firebase 工具实际上提供了自己的界面来部署 pubsub 云函数。您可以在 documentation 中阅读相关内容.但是,如果您需要比 Cloud Functions 提供的计算能力更强的计算能力,Firebase 产品将无济于事,您需要研究 Google Cloud 产品,例如 Compute Engine。您仍然可能会使用 pubsub 来通知您选择的后端。

关于firebase - 如何在 Firebase 上进行事件驱动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64134409/

相关文章:

Flutter cloud_firestore(0.9.0) 包打开应用程序时崩溃

javascript - 无法将 userNm 的属性设置为未定义

firebase - 数据库异常 : Found two getters or fields with conflicting case sensitivity

google-cloud-platform - 为什么使用 Dataflow 写入 Bigquery 非常慢?

python - 如何在 python 中获取当前 gcloud 配置用户/服务帐户的 id token

tensorflow - MultiWorkerMirroredStrategy() 无法在 Google AI 平台 (CMLE) 上运行

android - Firebase GoogleSignIn 无法通过 Play 商店提供发布版本

ios - Swift - Firebase - 订单收集

web-applications - Firebase错误: Blocked all requests from this device due to unusual activity

ios - Firestore 查询在创建新文档时未收到更新