Как отображать push-уведомления на переднем плане с помощью react-native-firebase v6?

# #android #reactjs #firebase #react-native #react-native-firebase

Вопрос:

У меня было несколько проблем с переходом с react native firebase v5 на v6. Похоже, что в версии 6 нет метода notifications (). Как правильно отображать уведомления на переднем плане с помощью react native firebase v6?

мой код с v5 работает:

     async listenToPushNots(){
            firebase.notifications().onNotificationDisplayed(notification => {
                  console.log("XXXXX onNotificationDisplayed", notification);
                });
            
                firebase.notifications().onNotification(notification => {
                 //remote notification received
                  console.log("XXXXX LISTENER onNotification", notification);
            
                  // notification.android.setChannelId(notification._notificationId);
                  // firebase.notifications().displayNotification(notification);
            
                  const localNotification = new firebase.notifications.Notification({
                    sound: "default",
                    show_in_foreground: true,
                    show_in_background: true
                  })
                    .setNotificationId(notification._notificationId)
                    .setTitle(notification._data.title)
                    .setSubtitle(notification._data.body)
                    .setBody(notification._data.body)
                    .setData(notification._data)
                    .android.setChannelId("my-app-channel")
                    .android.setSmallIcon("ic_stat_ic_notif") // create this icon in Android Studio
                    .android.setLargeIcon("ic_launcher_round")
                    .android.setColor("#000000") // you can set a color here
                    .android.setPriority(firebase.notifications.Android.Priority.High);
            
                  firebase
                    .notifications()
                    .displayNotification(localNotification)
                    .catch(err => console.error(err));
            }
        
        async componentDidMount(){
         listenToPushNots();
        }
 

В версии 6 как будет заменена функция firebase.notifications ()? В их официальных документах нет ссылок на то, как правильно мигрировать (https://rnfirebase.io/messaging/notifications). Метод обмена сообщениями() не включает уведомления, в отличие от v5.

Ответ №1:

Как вы можете видеть из их документации (https://rnfirebase.io/messaging/usage), вы не можете использовать react-native-firebase v6 для уведомления на переднем плане:

введите описание изображения здесь

Лучший способ добавить уведомление на переднем плане-это добавить https://github.com/zo0r/react-native-push-notification

Комментарии:

1. 😯 😯 только что понял! Я не могу поверить, что их v6 уступает их v5! Thx, я мог бы подумать о том, чтобы вернуться к v5 после этого, чем создавать все заново с новым модулем…

2. Я настоятельно рекомендую вам выбрать V6, v5 слишком старый и устаревший. Интегрировать новый модуль не так сложно, но я прошел через вашу ту же проблему 🙁 однако, если мой ответ разрешил ваш вопрос, пожалуйста, отметьте его. С уважением

3. Но я имею в виду, что у меня все готово с v5, включая настройку и настройки в XML-манифесте, и приложения ios, и т. Д., И они действительно работают. Я не могу поверить, что мне снова придется пройти через этот кошмар. Я полагаю, что да, ваш ответ охватил это, но я бы хотел, чтобы это было не так..

4. вы можете найти здесь относительную проблему: github.com/invertase/react-native-firebase/issues/2566

5. Тх Франческо! Невероятно, что они сделали! Они разделили модуль и взимают за него 240 долларов lol (за то, что делают точно то же самое). Я думаю, у меня нет другого выбора, кроме как использовать v6 и переделать все это с помощью модуля push-уведомлений react-native