Push-уведомление Flutter FCM не принимается на IOS с помощью firebase_messaging: ^9.1.3

# #ios #swift #firebase #flutter #firebase-cloud-messaging

Вопрос:

Я перепробовал все решения на StackOverflow и GitHub, но я все еще не получаю уведомлений в IOS. В Android он работает нормально, но в IOS — нет. Я использую последнюю версию плагина firebase_messaging, т. е. ^9.1.3, с новыми функциями, которые они ввели. Кто-нибудь может помочь, пожалуйста? Ниже приведен код, который я использовал для получения данных уведомления

Я тестирую это на реальном устройстве IOS с версией 14.2, и я также включил уведомления в настройках.

  Future<void> _firebaseMessagingBackgroundHandler(
          RemoteMessage message) async {
        // If you're going to use other Firebase services in the background, such as Firestore,
        // make sure you call `initializeApp` before using other Firebase services.
        await Firebase.initializeApp();
        print('Handling a background message ${message.messageId}');
      }
    
     void firebaseCloudMessaging_Listeners() {
        if (Platform.isIOS) iOS_Permission();
        _firebaseMessaging.getToken().then((token) {
          print(token);
        });
        FirebaseMessaging.onMessage.listen((RemoteMessage message) {
          print(message.notification.body);
    
          RemoteNotification notification = message.notification;
          AndroidNotification android = message.notification?.android;
    
          if (notification != null amp;amp; android != null) {}
        });
        FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
    
          print('A new onMessageOpenedApp event was published!');
          nextScreen(message, "onLaunch");
        });
        FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
      }
    
    // for IOS permision
     void iOS_Permission() async {
        NotificationSettings settings = await _firebaseMessaging.requestPermission(
            announcement: true,
            carPlay: true,
            criticalAlert: true,
            provisional: false,
            sound: true,
            badge: true,
            alert: true);
    }
    
    // setting up the variables I need
      FirebaseMessaging setUpFirebase(Function next, BuildContext context) {
        _firebaseMessaging = FirebaseMessaging.instance;
        firebaseCloudMessaging_Listeners();
        this.context = context;
        return _firebaseMessaging;
      }
    
      void deleteFirebaseInstance() {
        _firebaseMessaging.deleteToken();
      }
 

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

1. и я уже включил push-уведомления,фоновые режимы (с фоновой выборкой и удаленными уведомлениями) в Xcode

2. и просто для уверенности… вы пытаетесь получать уведомления на реальном устройстве IOS или работаете с эмулятором IOS?

3. Перейдите на свое устройство iOS, настройки, найдите свое приложение, откройте его настройки, проверьте, включены ли настройки уведомлений для вашего приложения.

4. Эй, да, я использую реальное устройство с версией IOS 14.2, и уведомления включены.

Ответ №1:

Для iOS вам нужно