我收到消息,但它们不会显示在状态栏上(我的应用程序在后台100%)

问题描述 投票:0回答:1

我将项目从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,message = Hello。这是一个测试推送。,item_id = -1}

MyFirebaseMsgService:消息getNotification == null

为什么remoteMessage.getNotification()== null?我究竟做错了什么?

java android firebase-cloud-messaging
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.