提问者:小点点

如何在Firebase上实现事件驱动


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

例如:用户通过移动应用程序创建合同草案(Firestore文档)。我们需要触发以下操作:

  • 通过电子邮件和推送通知通知合同中的其他用户
  • 写入通知表,以便用户在应用程序中有一个“收件箱”,并将其标记为已读或已删除
  • 生成一个将在一个月内轮询合同的作业,如果该作业未更改状态,则删除该合同
  • 在服务器上运行一系列计算

到目前为止我们设法将那些动作放入云函数触发器中,但我们的触发器代码变得凌乱,而且在极少数情况下,操作运行超过云函数阈值(2GB和9分钟)。

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

  1. 用户正在创建合同(Cloud Firestore)
  2. 云Firestore触发器创建事件(云函数)
  3. 需要对其执行某些操作的服务订阅事件流并执行适当的操作。(这里是什么?)

我已经调查了pub/sub,但认为这是一个矫枉过正的做法,因为我们不需要处理太多GCP之外的服务,我们的规模也不需要ATM。我们能在Firebase工具的范围内实现上述目标吗?


共1个答案

匿名用户

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

Firebase工具实际上为部署pubsub云功能提供了自己的接口。您可以在文档中了解到这一点。但是,如果你需要比云功能提供的更多的计算能力,那么Firebase产品将无法帮助你,你将需要查看像Compute Engine这样的谷歌云产品。您仍然可能使用pubsub通知您选择的后端。