Я пытаюсь реализовать push-уведомления в React Native с консольным приложением Firebase, следуя этой статье:
React Native: интеграция push-уведомлений с использованием FCM
В Android я могу получать уведомления, когда приложение находится в фоновом режиме, но не может получать на переднем плане.Использование этого метода для получения уведомлений:
async createNotificationListeners() {
/*
* Triggered when a particular notification has been received in foreground
* */
this.notificationListener = firebase
.notifications()
.onNotification(notification => {
console.log("fg", notification);
const { title, body } = notification;
this.showAlert(title, body);
});
/*
* If app is in background, listen for when a notification is clicked / tapped / opened as follows:
* */
this.notificationOpenedListener = firebase
.notifications()
.onNotificationOpened(notificationOpen => {
console.log("bg", notificationOpen);
const { title, body } = notificationOpen.notification;
this.showAlert(title, body);
});
/*
* If app is closed, check if it was opened by a notification being clicked / tapped / opened as follows:
* */
const notificationOpen = await firebase
.notifications()
.getInitialNotification();
if (notificationOpen) {
console.log("bg", notificationOpen);
const { title, body } = notificationOpen.notification;
this.showAlert(title, body);
}
/*
* Triggered for data only payload in foreground
* */
this.messageListener = firebase.messaging().onMessage(message => {
//process data message
console.log("fg", JSON.stringify(message));
});
}
Здесь firebase.notifications().onNotification
или firebase.messaging().onMessage()
вообще не запускаются.
В других решениях это потому, что из Android 8 вам нужно создать канал, но я не могу найти никакой опции для создания канала при отправке уведомления от FCM композитор уведомлений .