我将项目从GCM迁移到了FCM。已经在服务器端进行了更改,并更新了移动应用程序中的所有依赖关系。但是,当我收到一条消息时,它没有出现在状态栏中,并且我不明白为什么。
<service
android:name="com.SkinPhd.Olympus.fcm.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
MyFirebaseMessagingService扩展了FirebaseMessagingService:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
} else {
Log.d(TAG, "Message getNotification == null");
}
}
Logcat:
MyFirebaseMsgService:来自:413140669797
MyFirebaseMsgService:消息数据有效负载:{push_id = 962,type_item = 0,消息= Hello。这是一个测试推送。,item_id = -1}
MyFirebaseMsgService:消息getNotification == null
为什么remoteMessage.getNotification()== null? 我在做什么错了?
答案 0 :(得分:0)
找到了一个解决方案:事实证明,过渡到新平台并非一切都那么简单,并且向后兼容不如我们的“好公司”所写的那样好。有必要专门更改服务器端逻辑,特别是如何编写文档,而不要像迁移到FCM的文档那样简单。