Firebase 与 Android Java 中的 Google 云消息传递

Posted

技术标签:

【中文标题】Firebase 与 Android Java 中的 Google 云消息传递【英文标题】:Firebase with Google Cloud Messaging in Android Java 【发布时间】:2015-12-27 13:45:27 【问题描述】:

是否有可能使用 Firebase Server 实现 GCM...? 如果是,那我们怎么做呢? 示例我有一个聊天应用程序,其中后端服务器只有 firebase,没有其他服务,并且实现了 firebase 的身份验证系统,然后我们如何将通知发送给特定用户以通知有来自其他用户的一些消息。

【问题讨论】:

在下面回答。但是写完之后,我发现这个问题之前已经被问过很多次了:***.com/questions/25078953/…、***.com/questions/29142564/…和***.com/questions/28686138/…(虽然对于ios/APN,android/GCM的方法类似)。 【参考方案1】:

来自landing page of Google Cloud Messaging:

Google Cloud Messaging (GCM) 是一项免费服务,可让开发人员在服务器和客户端应用之间发送消息。这包括从服务器到客户端应用程序的下游消息,以及从客户端应用程序到服务器的上游消息。

Firebase 是一种后端即服务,它提供您的应用程序可以与之通信的set of APIs。目前没有用于向客户端发送推送通知的 Firebase API。

Firebase 目前不允许在他们的服务器上运行您的代码。

这意味着您需要在自己的服务器上运行代码才能通过 GCM 发送消息。

通常,使用 Firebase 的开发人员会让他们的(Android 或其他)应用将通知信息推送到 Firebase 中的某个位置,然后服务器端脚本会从该位置读取信息并调用 Google Cloud Messaging。这种基于队列的方法在 Firebase 中很常见,在 article about Firebase application architectures 中作为模式 2 进行了介绍。

【讨论】:

感谢您的回复先生。我有一个问题,您打算在即将发布的有关 udacity 的视频教程中介绍应用程序架构模式吗? 有趣的想法。课程已经结束,但我会问 Lyla 和团队的未来计划。 实际上,截至今天(2016 年 5 月 19 日),Google 刚刚将 GCM 更名为 Firebase Cloud Messaging,并提供了此功能。请参阅此回复以获得更完整的答案:***.com/a/37336674/3032209 是的,我只是想说@YairKukielka。是否有过时的标志?【参考方案2】:

Firebase 云消息传递 (FCM) 是 GCM 的新版本。它继承 可靠且可扩展的 GCM 基础架构,以及新功能!看 常见问题解答以了解更多信息。如果您要在新应用中集成消息传递, 从 FCM 开始。强烈建议 GCM 用户升级到 FCM, 以便从现在和未来的新 FCM 功能中受益。

[来源:https://developers.google.com/cloud-messaging/topic-messaging#sending_topic_messages_from_the_server - 2016 年 5 月 18 日]

所以现在的答案是肯定的,您可以关注此link(以及上一个)以获取有关如何做到这一点的更多信息。

【讨论】:

这里firebase.google.com/docs/cloud-messaging/downstream如何发送下游消息。在同一页面的左侧菜单中,如何发送上游、主题、设备。

以上是关于Firebase 与 Android Java 中的 Google 云消息传递的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Admin SDK - 与Node.JS相比,Java版本缺乏什么?

将 Java 桌面应用程序连接到 Firebase-analytics

如何使用 java/android 从 Firebase ONCE 读取数据?

google 的 firebase 可以与 java 桌面应用程序一起使用吗?

Java/Android 中的 Firebase:事务被后续集合覆盖

通过 Firebase 中的 JAVA 动态克隆/复制和填充布局中的数据 - Android