如何在Android中向主题发送消息

时间:2017-03-16 14:36:30

标签: android firebase push-notification firebase-cloud-messaging

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

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

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

感谢。

2 个答案:

答案 0 :(得分:10)

向设备发送消息(所谓的下游消息)需要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应用程序调用您的服务器端代码
  4. 在我们的博文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 :(得分:0)

如果您的应用已在Firebase控制台中注册,则您不仅可以通过Firebase控制台发送消息,还可以通过http客户端发送消息。 这是Fiddler向" news"发送通知的代码。主题

  1. 地址:https://gcm-http.googleapis.com/gcm/send
  2. 接头: 内容类型:application / json 授权:key = [YOUR_APP_API_KEY]
  3. 体:
  4. {   " to":" / topics / news",   "通知":{     "身体":"你好伙计!",    } }

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