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
заполнено поле данных