【问题标题】:Android push notifications tutorial: how do I send notifications to "followers"?Android 推送通知教程:如何向“关注者”发送通知?
【发布时间】:2016-06-06 13:40:20
【问题描述】:

我编写了一个测试应用程序,用户可以在其中将一些数据(位置、照片、标签等)发布到他们的“提要”(即将一些数据写入当前为 Firebase 的在线数据库)。如果其他用户正在“关注”该用户(或相关标签),我如何向关注者发送新数据可用的通知?

我查看了 Google Cloud Messaging 和替代的 Firebase Cloud Messaging,但我发现他们的文档对我来说过于技术化(似乎面向 IT 专业人士)。我可以编程但不太了解“服务器”、“协议”等。从 GCM/FCM 文档看来,我需要一个“服务器”才能使用他们的服务。该服务器将

  • 识别数据库事件何时发生。

  • 运行一些逻辑来确定是否需要发送通知(以及发送给谁)

  • 通知 GCM 或 FCM 这样做。

这是正确的吗?如果是这样,我不知道如何获得服务器,编写一个,插入一个或任何我应该用它做的事情。任何人都可以向新手开发人员提供任何建议或简单教程,我们将不胜感激!

谢谢, 里兹

【问题讨论】:

  • 这是一个非常笼统的问题。基本答案是肯定的,但您需要一个应用程序服务器来通知用户数据已更改。

标签: android firebase google-cloud-messaging


【解决方案1】:

您似乎正在尝试实现GCM Topic Messaging,您的应用服务器将消息发送到订阅特定“主题”的多个设备。虽然这个特定的功能似乎不太可行,但它是可行的。

在您的关注者收到通知之前,他们必须先订阅一个主题。

以下是在 Android 中订阅的方法:

private void subscribeTopics(String token) throws IOException {
    GcmPubSub pubSub = GcmPubSub.getInstance(this);
    for (String topic : TOPICS) {
        pubSub.subscribe(token, "/topics/" + topic, null);
    }
}

试试这个实际的演示来掌握这个:

GCM Playground - GCM 应用服务器的参考实现,以 Playground 形式提供,开发人员可以使用它来测试 Google Cloud Messaging Service。

由于 Google 现在鼓励用户使用 FCM,请尝试使用 FCM Android Quickstart。您还可以阅读此SO post 以获得更多见解。

【讨论】:

  • 谢谢。我之前看过主题订阅,但一提到服务器就崩溃了。我有点知道一个是什么,但不确定我是如何创建一个...
  • 我链接到您的 GCM Playground 示例有一个示例服务器 using Go。其他选择是 NodeJS。尝试在空闲时间阅读这两个。然后从 Chromestore 获取 POSTMAN chrome 应用程序。这应该可以帮助您探索。
  • 感谢感谢!
  • 如果答案对你有帮助,别忘了点赞; )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 2022-09-28
  • 2015-11-23
相关资源
最近更新 更多