使用Firebase实时数据库构建的聊天应用如何发送推送通知

3

我目前正在使用Firebase实时数据库构建聊天应用程序。我参考了这个Raywenderlich教程来学习Firebase。

在我的情况下,当有新消息时(也是其他Firebase数据库更改的推送通知),我需要发送推送通知。 我知道有FCM和Firebase Notification可以发送推送通知,但它们只能从HTTP请求外部触发。

我不介意拥有自己的Node.js服务器来实现此目的,但我该怎么做呢? 如何跟踪是否有新消息(DB更改)?

那Firebase Admin SDK是什么?我应该使用它吗? 我对Firebase很陌生,有点迷茫。有人能帮我吗?


1
推荐阅读:https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html - Frank van Puffelen
@FrankvanPuffelen,感谢您的博客。它很有用。 - spaceMonkey
你有没有找到任何简单的解决方案?如果你有任何想法,请告诉我。我想实现相同的功能。 - Sagar Sukode
3个回答

1
你可以使用Firebase Cloud Functions 来实现这个功能。
  1. 该函数会在写入到实时数据库“/notifications/{uid}/something”时触发。
  2. 该函数会组合一条消息并通过FCM发送。
  3. FCM将通知消息发送到用户的设备上。

请参阅此教程here以了解如何创建函数触发器。

如果您需要知道如何发送通知消息,请查看此教程here


1
当我提出这个问题时,Google还没有Firebase云函数。如果有人遇到这个问题,最终我使用了Cloud Functions(仍处于beta版)来解决这个问题。 通知用例的Cloud Functions

0

你是对的,应该使用管理员服务器来做。

@AM_ 的答案是一个好的开始:你需要一个监听数据变化的后台任务。但是现在有更好的方法去做这件事。

Firebase 有一个队列系统,可以让你创建多个工作线程来处理后台任务。下面是一个实例实现:https://github.com/mcdonamp/sanichat

而且,不用直接构建一个 HTTP POST 请求来使用 FCM,Firebase 管理员 Node.Js SDK 提供了一个 FCM API。Java 版本暂时还没有。

最后,这是一个 关于管理员 SDK 的很棒的 Firebase 团队博客文章


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接