如何在应用程序被关闭时通过Firebase向设备发送消息?
如何在应用程序被关闭时通过Firebase向设备发送消息?
我正在尝试熟悉Firebase通知。它运行正常,但是当应用程序未打开时,我无法接收来自通知控制台的消息。
我知道文档上说:
如果您的应用在前台或后台,您可以在onMessageReceived方法中接收消息,否则用户将在托盘中接收通知...点击它将打开带有意图数据的主活动
但是是否有任何方法可以在应用程序关闭时捕获通知控制台的每条消息呢?
==== 回答 ====
在这里找到答案。
无法从通知控制台发送数据消息。
但是还有其他方法可以向设备发送通知,并且它们将在onMessageReceived中捕获!
您可以使用终端(Mac或Linux)或类似Postman的服务,向此链接发送Post请求:https://fcm.googleapis.com/fcm/send
并使用以下主体:
{
"to": "/topics/your_topic_here",
"data": {
"text":"text",
"text1":"text1",
...
}
}
还需要添加2个头部:
- Authorization - key=your_server_key_here
- Content-Type - application/json
要获取您的服务器密钥,您可以在Firebase控制台中找到它:您的项目 -> 设置 -> 项目设置 -> 云消息传递 -> 服务器密钥
在Firebase中,当应用程序处于后台或已关闭时,将不会调用onMessageReceived()
方法,只有当消息通过Firebase控制台发送时才会调用。在应用程序不运行时,您仍然会从Firebase控制台接收到通知。但是,如果您想通过onMessageReceived()
拦截数据,则必须创建一个自定义的应用服务器,该服务器将仅将数据有效载荷发送到FCM端点。简而言之,在这种情况下,如果您想更有效地利用FCM,您将需要创建一个应用服务器。
您可以查看以下两个问题,这两个问题讨论了与此相关的更多内容,而在第二个问题中,我还简要讨论了使用Node.js和Java Servlet执行相同操作的方法:
1. [Handle the data payload without user tapping on the notification?](https://stackoverflow.com/questions/39766418/39767066#39767066)
2. [How to push notification to client when Firebase has a new entry?](https://stackoverflow.com/questions/39670667/39671650#39671650)
如果这些信息对您有所帮助,请告诉我。抱歉,但你的回答不是我正在寻找的确切答案...我已经找到了答案,请查看更新。