【发布时间】:2018-08-05 12:32:55
【问题描述】:
我从 GCM 升级到 FCM,现在我正在测试升级用户的体验
我有以下步骤
- 安装支持GCM的应用版本
- 升级到支持 FCM 的新版本
- 在 Firebase 控制台上发送推送消息
问题是我在设备的通知区域看到收到的消息,但它没有调用代码CloudMessagingListenerService extends FirebaseMessagingService
我在CloudMessagingListenerService#onMessageReceived开头有一个调试日志
在我转到应用信息并选择强制停止并重新打开应用后,CloudMessagingListenerService#onMessageReceived 中的代码被正确调用。
知道是什么原因造成的,以及可以做些什么来避免强制杀死(我的用户不会自愿这样做)
在这两种情况下,应用程序都在后台
更新:
问题在于从 Firebase 控制台接收消息。
我在 CloudMessagingListenerService#onCreate 和 CloudMessagingListenerService#onDestroy 中添加了日志,我可以看到它们之间的调用时间差异为 100 毫秒 - 而 CloudMessagingListenerService#onMessageReceived 没有被调用,所以似乎 FirebaseMessagingService 决定处理通知但不是数据部分
关于从服务器发送的消息:
这是我从服务器发送的 json - 数据部分正确传播到我的代码,但通知被忽略,当我检查 remoteMessage.getNotification() 的内容是什么时,我得到 null
{
"to": "my token",
"collapse_key": "my app",
"notification": {
"title": "server title",
"body": "server text"
},
"data": {
"tag": "debug",
"action": "custom-push",
...
}
}
【问题讨论】:
-
您能分享您的 FCM 消息正文吗?您在服务器中构建的那个...
-
@HedeH 我没有发布我的服务器 json b/c 它处理得很好 - 正如上面更新的那样,问题是 Firebase 控制台中生成的消息
标签: android google-cloud-messaging firebase-cloud-messaging