Firebase 快照侦听器与FCM

Firebase 快照侦听器与FCM,firebase,Firebase,我想知道快照侦听器和Firebase云消息传递之间的区别。两者都可以触发我的代码响应服务器端代码,比如云函数 如果我理解正确,快照侦听器在我向数据库写入内容时被触发,而FCM服务在我从云函数发送消息时被触发。在以下用例中,什么更有效: 我有一个用户可以玩的游戏。他将他的移动发送到数据库,云函数检查他的移动。用户正在等待从服务器返回响应,以查看他是否得到了正确或错误的响应。我应该: 添加快照侦听器,从云函数写入该文档,响应侦听器的触发器,并删除 事后文件 或 添加FCM服务并以某种方式将消息从云功

我想知道快照侦听器和Firebase云消息传递之间的区别。两者都可以触发我的代码响应服务器端代码,比如云函数

如果我理解正确,快照侦听器在我向数据库写入内容时被触发,而FCM服务在我从云函数发送消息时被触发。在以下用例中,什么更有效:

我有一个用户可以玩的游戏。他将他的移动发送到数据库,云函数检查他的移动。用户正在等待从服务器返回响应,以查看他是否得到了正确或错误的响应。我应该:

添加快照侦听器,从云函数写入该文档,响应侦听器的触发器,并删除 事后文件

添加FCM服务并以某种方式将消息从云功能发送到设备


我不知道通知FCM和侦听器snapshotlistener之间的区别。我不想要任何弹出窗口,比如苹果的通知,但我只希望我的代码被通知,这样我就可以从云功能的输出中做出响应。

只有当用户正在积极使用你的应用程序时,数据库侦听器才可靠地处于活动状态。因此,如果玩家提交了一个移动,然后切换到另一个应用程序并忘记了游戏,他们可能永远看不到来自云功能的更新

另一方面,无论应用程序是否处于活动状态,Firebase云消息都可以传递。因此,这些都是将玩家从云功能拉回到游戏中的好方法


哪一个最适合您的用例可能取决于处理移动所需的时间或函数执行的任何其他操作。如果是几秒钟,您可以使用数据库侦听器来传递结果。如果时间较长,FCM可能会更好。

您可能希望查看每个产品的文档,了解它们的使用方法。他们不是很相似。一个是实时数据库,另一个是推送消息系统。@DougStevenson是的,我知道,但两者都可以触发代码作为对云函数的响应。对于我提供的示例,我试图找出最佳方案