React-native FCM: невозможно получить доступ к данным уведомлений, когда приложение находится в фоновом режиме или убито

Я пытаюсь заставить работать реакцию-native-fcm с помощью облачных сообщений Firebase и приложения собственного реагирования.

Я ориентируюсь в основном на Android

react-native@0.48.0
react-native-fcm@10.0.2
OS: Android - Emulator - 7.0.2

Когда мое приложение на переднем плане, оно работает отлично, я получаю данные в этой функции

FCM.on(FCMEvent.Notification, async (notif) => {

И я могу справиться со всем

образ

Но когда приложение находится в фоновом режиме, уведомление получено, но когда я нажимаю на баннер, приложение выходит на передний план, запускается та же функция, но объект уведомления отличается и не содержит моих данных.

образ

Когда приложение убито, уведомление также получено, но когда я нажимаю на баннер, приложение запускается, FCM.getInitialNotification()срабатывает, и мой объект уведомления также не содержит данных, такое же поведение, как в фоновом режиме

образ

Я проверяю формат сообщений с использованием библиотеки node-gcm веб-интерфейса firebase, но ничего не работает.

Это пример моего сообщения, но я пробовал множество комбинаций:

let message = new gcm.Message({
    priority: 'high',
    content_available: true,
    timeToLive: 3,
    data: {
        key1: 'message1',
        key2: 'message2'
    },
    notification: {
        title: "Hello, World",
        icon: "ic_launcher",
        body: "This is a notification that will be displayed if your app is in the background."
    },
    custom_notification: {
        key1: 'message1',
        key2: 'message2'
    }

});

Как я должен продолжать отправлять и получать данные в этих случаях? Потому что сводит меня с ума.

Если вам нужно больше данных, попросите об этом:)

Спасибо!!

1 ответ

В моем случае я пропустил настройку данных уведомления при создании уведомления о событии уведомления переднего плана firebase.notifications().onNotification

new firebase.notifications.Notification()
      .setNotificationId(fcmNotification.data.notificacionId)
      .setTitle(fcmNotification.title)
      .setBody(fcmNotification.body)
      .setData(fcmNotification.data) // <- this little bastard

так, при нажатии на уведомление data был неопределен на firebase.notifications().onNotificationOpened даже когда JSON, который входит в firebase.notifications().onNotification заполнено поле данных