Поэтому у меня проблемы с уведомлениями. Я успешно подключил уведомления на Android и получил удаленные (только данные) сообщения для ios. Но не может получать уведомление или уведомление плюс сообщения с данными. Вот мой код для перехвата сообщений:
const enabled = await firebase.messaging().hasPermission();
if (enabled) {
console.info('fcm enabled');
const channel = new firebase.notifications.Android.Channel(
'channelId',
'Channel Name',
firebase.notifications.Android.Importance.Max
).setDescription('A natural description of the channel');
firebase.notifications().android.createChannel(channel);
this.unsubscribeFromNotificationListener = firebase.notifications().onNotification((notification) => {
console.info(notification);
if (Platform.OS === 'android') {
const localNotification = new firebase.notifications.Notification({
sound: 'default',
show_in_foreground: true,
})
.setNotificationId(notification.notificationId)
.setTitle(notification.title)
.setSubtitle(notification.subtitle)
.setBody(notification.body)
.setData(notification.data)
.android.setChannelId('channelId')
.android.setColor('#000000')
.android.setSmallIcon(notification.android.smallIcon.icon)
.android.setPriority(firebase.notifications.Android.Priority.High);
firebase.notifications()
.displayNotification(localNotification)
.catch(err => console.error(err));
} else if (Platform.OS === 'ios') {
console.info(notification);
const localNotification = new firebase.notifications.Notification()
.setNotificationId(notification.notificationId)
.setTitle(notification.title)
.setSubtitle(notification.subtitle)
.setBody(notification.body)
.setData(notification.data)
.ios.setBadge(notification.ios.badge);
firebase.notifications()
.displayNotification(localNotification)
.catch(err => console.error(err));
}
});
} else {
console.info('fcm not enabled');
}
Нет, я просто не включил этот фрагмент кода. Я добавлю это.
@ user300779 вы получаете уведомление с консоли?
Нет, я могу получать сообщения только с данными с onMessage, но не с уведомлениями.





Я думаю, что вы можете пропустить шаг деталей для настройки push-уведомлений IOS, вы можете проверить этот БЛОГ, в котором объясняется, как мы можем настроить FCM в IOS и Android как
https://medium.com/@anum.amin/react-native-integrating-push-notifications-using-fcm-349fff071591
Я слежу за вашим блогом и у меня возник вопрос: где я должен добавить UserNotifications.framework и libRNFirebase.a? В RNFirebase.xcodeproj?
Нет, вам нужно добавить эту папку внутри папки libary, которая находится в папке вашего приложения (родительская папка), вы можете видеть, что когда вы открываете файлы ios в Xcode, вы можете выполнить шаг — Перейти к этапам сборки. Нажмите «+» в разделе «Связать двоичный файл с библиотеками», чтобы добавить новую библиотеку.
Я перепроверил все правильно. Ваш код работает для меня только для сообщений только с данными, но я все еще не могу получать уведомление или уведомление + сообщение с данными. Проблема в том, что мне нужно реализовать какое-то фоновое уведомление, а сообщение только для данных для ios работает только на переднем плане, но ничего не делает в фоновом режиме.
Моя проблема была в FirebaseAppDelegateProxyEnabled флаге в info.plist. Было установлено значение NO, этот флаг позволяет отправлять сообщения из APN в FCM. Вот почему я смог отправлять push-уведомления о получении через токен APN, но не через токен FCM. Установка этого флага на YES устранила мою проблему.
Похоже, вы пропустили запрос разрешения на уведомление.