Удаленное сообщение Firebase возвращает нулевые данные в remotemessage.getDate()

#android #firebase #firebase-cloud-messaging

#Android #firebase #firebase-облако-обмен сообщениями

Вопрос:

Использование FirebaseMessagingService для отправки удаленного сообщения с использованием PHP. До настоящего времени все работало нормально, внезапно приложение перестает получать уведомления, после отладки я обнаружил, что

 onMessegeReceived(remoteMessage)
remoteMessage.getData() returns null Array Map.
  

Но я вижу данные полезной нагрузки в пакете

 Bundle[{google.delivered_priority=high, google.sent_time=1556008551748, google.ttl=2419200, google.original_priority=high, 
from=982221224130, 
google.message_id=0:1556008551825452%903f05e2903f05e2, 
gcm.notification.data={"image":"https:url","nId":1313,"time":"14:05:51","priority":"normal","title":"testttt","message":"","type":"1"}, google.c.a.e=1, collapse_key=com.sam.grapemundo}]
  

Я ожидаю, что результат remoteMessage.getData() вернет

 data={"image":"https:url","nId":1313,"time":"14:05:51","priority":"normal","title":"testttt","message":"","type":"1"}, google.c.a.e=1, collapse_key=com.sam.grapemundo}]
  

Ответ №1:

Прежде всего, вы должны проверить, запущено уведомление или нет:-

 @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.e(TAG, "From: "   remoteMessage.getFrom());
        Log.e(TAG, "Data Payload: "   remoteMessage.getData().toString());

        if (remoteMessage.getNotification() == null)
            return;
        // Check if message contains a notification payload.
        if(remoteMessage.getNotification() != null) {
            handleNotification(remoteMessage, remoteMessage.getNotification().getBody(), remoteMessage.getNotification().getTitle());
        }
  

Комментарии:

1. Я отправляю уведомление с использованием полезной нагрузки данных, поэтому remoteMessage.getNotification() всегда имеет значение null

2. remoteMessage.getFrom() возвращает 982221224130 remoteMessage.getMessageId также возвращает значение message_id

3. Строковое изображение = remoteMessage.getData().get(«изображение»); получается вот так.

4. @swapnilmdkapse …google.c.a.e = 1, возможно, создает проблему, проверьте это.