0

如何通过Firebase发送主题消息?如何发送消息到Android主题

我只找到了使用Firebase控制台发送的方式, 以及一些关于发布HTTP请求的方式, ,但我不明白如何在Android中执行此操作。

如何在Android 中编写一些代码来指定要定位的主题然后将消息发送到主题?

谢谢。

+0

你可能需要Android和火力之间的服务器,使其工作... –

回答

7

向设备发送消息(所谓的下游消息)需要HTTP呼叫,该呼叫指定服务器密钥。顾名思义,这个关键只能用在你可以信任的环境中。您不能直接从设备向其他设备发送消息,包括主题。这diagram from the Firebase Cloud Messaging documentation shows the flow

diagram showing the flow of FCM messages

所以,如果你想发送消息的Android应用程序,你必须:

  1. 创建服务器端代码,Android应用程序会谈
  2. 有服务器端代码call Firebase Cloud Messaging to send messages
  3. 有Android应用程序调用您的 server-sid e代码

我们的博客文章Sending notifications between Android devices with Firebase Database and Cloud Messaging中描述了完成此类流程的一种方法。它使用Firebase数据库与服务器端脚本通信,然后调用FCM将消息发送到主题。这篇文章中的服务器端代码是一个Node.js脚本,因为它是我编写它时最简单的方法。

但是上周Firebase发布了Cloud Functions for Firebase。这使您可以运行服务器端代码,而无需管理自己的基础架构,这使其非常适合您的使用情况。事实上,它是这样一个不错的选择,它是第一个在documentation on use-cases for Cloud Functions for Firebase

Send FCM message through Cloud Functions for Firebase

你会看到,这个样本中的方法是非常相似的人在博客文章:两个侦听数据库写入触发发送FCM消息。与博客文章相比,示例中的某些更改:

-1

如果您的应用在火力地堡控制台注册,您不仅可以通过火力地堡控制台,但通过任何HTTP客户端发送消息。 这里是代码中的Fiddler发送通知为 “新闻” 主题

  1. 地址:https://gcm-http.googleapis.com/gcm/send
  2. 接头: 内容类型:应用/ JSON 授权:键= [YOUR_APP_API_KEY]
  3. Body:

{ “to”:“/ topics/news”, “通知”:{ “体”:“你好!伙计”, } }

或使用Android应用发送消息 sample from github