我收到了消息,但没有显示在状态栏中(我的应用程序在后台100%)

时间:2019-04-13 22:29:20

标签: java android firebase-cloud-messaging

我将项目从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? 我在做什么错了?

1 个答案:

答案 0 :(得分:0)

找到了一个解决方案:事实证明,过渡到新平台并非一切都那么简单,并且向后兼容不如我们的“好公司”所写的那样好。有必要专门更改服务器端逻辑,特别是如何编写文档,而不要像迁移到FCM的文档那样简单。