Как получить сообщение, когда сообщение об уведомлении FCM?

Когда приложение находится в фоновом режиме, сообщение уведомления доставляется уведомлением, когда уведомление отключается, приложение запускается, как я могу получить тело сообщения?

это таково:

    Bundle[{google.sent_time=1470813025421, from=568540028909, 
google.message_id=0:1470813025865549%31bd1c9631bd1c96,
 collapse_key=com.google.firebase.quickstart.fcm}]

нет тела сообщения в намерении, только идентификатор сообщения! Благодарю!

Ответ 1

Прошу прощения, но то, что вы пытаетесь сделать, невозможно.

В настоящее время невозможно получить доступ к информации о теле, названии, значке... notification-message из активности, которая запускается при открытии уведомления.

Вместо этого вы можете получить доступ к компоненту данных сообщения уведомления.

Возможной альтернативой является использование сообщений data-message и создание собственного пользовательского уведомления и пользовательской логики.

см. notification-message vs data-message здесь:
https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

PS: если было бы полезно, если бы вы могли сообщить о запросе на функцию через страницу поддержки firebase.
Таким образом, команда может правильно определить приоритеты будущих функций. https://firebase.google.com/support/contact/bugs-features/

Ответ 2

попробуйте это

  @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
            // TODO(developer): Handle FCM messages here.
            // If the application is in the foreground handle both data and notification messages here.
            // Also if you intend on generating your own notifications as a result of a received FCM
            // message, here is where that should be initiated. See sendNotification method below.
            Log.d(TAG, "From: " + remoteMessage.getFrom());
            Log.d(TAG, "From: " + remoteMessage.getData().get("message"));
    //        Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
// if you sending data with custom key
 Log.d(TAG, "Notification Message of custom key: " +remoteMessage.getData().get("your key"));
            sendNotification(remoteMessage.getData().get("message"));
        }