Проблема:
Я интегрировал собственную версию firebase v5 в мой проект. Однако при каждом запуске нового приложения (, нажав на уведомление pu sh в области уведомлений ), затем на следующем уведомлении pu sh, которое поступает на мой мобильный телефон, будет появляться дважды.
Если я повторю шаги, описанные выше (, открою приложение через уведомление из лотка ) несколько раз, тогда мое приложение получит сообщение от сервера приложений несколько раз.
I я подозреваю, потому что каждый новый запуск есть слушатель снова добавляется в мое приложение? Также отметим, что при каждом запуске приложения ( открывать приложение через панель уведомлений ), componentDidMount запускается снова.
Есть мысли?
Код:
Я звоню под кодом моего componentDidMount ()
this.notificationOpenedListener = firebase
.notifications()
.onNotificationOpened(notificationOpen => {
const {title, body} = notificationOpen.notification;
console.log('onNotificationOpened(): open notificaiton, show alert');
// this.showAlert(title, body);
});
const notificationOpen = await firebase
.notifications()
.getInitialNotification();
console.log('getInitialNotification()');
console.log(notificationOpen);
if (notificationOpen) {
const {title, body} = notificationOpen.notification;
// Prevent the alert box keep showing when App Reload
if (title) {
console.log(
'getInitialNotification(): check to see if the application was opened by a notification',
);
// this.showAlert(title, body);
}
}
this.notificationOpenedListener = firebase
.notifications()
.onNotificationOpened(notificationOpen => {
const {title, body} = notificationOpen.notification;
console.log('onNotificationOpened(): open notificaiton, show alert');
// this.showAlert(title, body);
});
Информация об окружающей среде:
"react-native-firebase": "^5.6.0"
react-native: 0.61.5 => 0.61.5