我正在尝试熟悉Firebase通知.它工作正常,但我没有在应用程序未打开时从通知控制台接收消息.
我知道文档说:
if your app in foreground or background you can receive message in onMessageReceived method,otherwise user will receive notification in tray… click on it will open main activity with data inside intent
====答案====
找到答案here
无法从通知控制台发送数据消息.
但是还有其他方法可以向设备发送通知,并且它们将被捕获在onMessageReceived中!
您可以使用终端(Mac或Linux)或Postman等服务在此链接上发送Post请求:https://fcm.googleapis.com/fcm/send
与下一个身体:
{ "to": "/topics/your_topic_here","data": { "text":"text","text1":"text1",... } }
>授权 – key = your_server_key_here
> Content-Type – application / json
要获取服务器密钥,可以在firebase控制台中找到它:您的项目 – >设置 – >项目设置 – >云消息传递 – >服务器密钥
解决方法
当应用程序未运行时,您仍会收到来自firebase控制台的通知.但是如果你想通过onMessageReceived()拦截数据,那么你将不得不创建一个自定义应用服务器,它只会将数据有效负载发送到fcm端点.简而言之,如果您想在这种情况下更有效地使用FCM,则必须创建一个应用服务器.
你可以看看这两个问题,讨论更多关于同样的问题,在第二个问题中,我还简要讨论了使用node.js和java servlet做同样的事情:
> Handle the data payload without user tapping on the notification?
> How to push notification to client when Firebase has a new entry?
如果这能为您提供一些信息,请告诉我.