Firebase onMessageReceived()未从http请求调用

时间:2016-07-23 19:24:32

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

在发现从Firebase控制台发送通知后,如果应用程序处于后台,则不会调用onMessageReceived()方法。

因此,我遵循人们的建议来使用HTTP POST请求。 我一直在使用邮递员发帖请求

https://fcm.googleapis.com/fcm/send

有两个标题:

Content-Type:application / json

授权:key = ALsa ....... 6ryLiI

和身体

 {
 "to" : "fzgh-aHiOd8:APA91bFcKuwuVq_2gbLydHkAZf9XLUzm9vPalh7EUQT3Kyj8mcW9raAs9QvxbHaGJ4-U4RnUJwJ3UaEarbMXiQ8rHnsx9UuYBDrOI9tJYB78_Z3VVR1l7H_6PGpCkdgINx8a4vvMXD9q",
"notification" : {
    "body" : "Sales!",
    "title" : "ID Phone",
    "icon" : "myicon"
},
"data" : {
    "data" : "sales",

}

}

现在,通知确实进入我的应用程序(这很好),但它仍然不是我想要的自定义通知。即onMessageReceived()仍未被调用。

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:3)

您应该定义数据有效负载以在onmessagereceived()中获取消息。通知标记仅用于通知。

请参阅GCM documentation

  

数据讯息

     

使用您的自定义键/值对设置数据以发送数据有效负载   客户端应用。数据消息的有效载荷最大为4KB。

     

例如,这是同一IM中的JSON格式的消息   如上所述的应用,其中信息封装在数据中   并且客户端应用程序应该解释内容:

 {
   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
 }

修改

替换这些

Content-Type - application/json
Authorization - key=ALsa.......6ryLiI

Content-Type:application/json
Authorization:key=ALsa.......6ryLiI