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

如何在Firebase上实现事件驱动

司徒阳曜
2023-03-14

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

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

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

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

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

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

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

共有1个答案

单于奕
2023-03-14

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

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

 类似资料:
  • 本文向大家介绍基于spring如何实现事件驱动实例代码,包括了基于spring如何实现事件驱动实例代码的使用技巧和注意事项,需要的朋友参考一下 干货点 通过阅读该篇博客,你可以了解了解java的反射机制、可以了解如何基于spring生命周期使用自定义注解解决日常研发问题。具体源码可以点击链接。 问题描述 在日常研发中,经常会遇见业务A的某个action被触发后,同时触发业务B的action的行为,

  • 我有两个独立的Spring-Boot微服务,一个是命令端,另一个是查询端,命令服务将事件存储在Mongodb中,将事件放到RabbitMQ中,然后查询端订阅队列并建立查询模型。现在如何在Axon中实现事件重放和建立查询模型?是否有可能两个服务在不同的节点上独立运行。如果不可能,那么我应该遵循什么来实现这一点。

  • 本文向大家介绍如何在jQuery中实现自定义事件?,包括了如何在jQuery中实现自定义事件?的使用技巧和注意事项,需要的朋友参考一下 自定义事件意味着您可以在jQuery中创建自己的事件。例如,创建一个自定义事件以在按下键盘上的任意键时触发警报框。 示例 您可以尝试运行以下代码以了解如何创建自定义事件,

  • 我有一个函数,是递减用户信用的firebase实时数据库值与事务。正如Firebase事务API调用中所建议的,当前数据为空事务当前值偶尔返回为空。 第二次调用当前值:0 第二次调用中止 首次调用电流值:5 第一次呼叫返回5-3 首次呼叫成功 第二次调用不提交 因此,当用户有足够的信用时,第二个收费电话最终没有通过。处理firebase事务空值情况的正确方法是什么?

  • 本文向大家介绍wxPython事件驱动实例详解,包括了wxPython事件驱动实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考。具体方法如下: 先来看看如下代码: 程序运行效果如下图所示: wxStaticText的两个构造函数官方文档如下: wxStaticText ()    Default constructor. wxSt

  • 本文向大家介绍如何实现文件拖动上传?相关面试题,主要包含被问及如何实现文件拖动上传?时的应答技巧和注意事项,需要的朋友参考一下 利用 HTML5 的 API 来实现。需要注意的是,必须要设置 事件,不然不会触发 事件。 示例:https://codepen.io/Konata9/pen/BaBzExe?editors=1011