Проблема с передним планом и фоном в FCM и флаттером (серверная часть Node Js)

0

Используемая зависимость:

** firebase_messaging: ^ 10.0.1 flutter_local_notifications: ^ 6.0.0 firebase_core: ^ 1.2.1 firebase_analytics: ^ 8.1.2 **

Проблема

случай 1: когда приложение работает в фоновом режиме, но не завершено или принудительно остановлено, оно не запускает метод FirebaseMessaging.onMessageOpenedApp.listen ((message) {} вместо этого запускает Future backgroundHandler (RemoteMessage? message) async {}

случай 2: Когда приложение находится в состоянии «Завершено» для принудительной остановки, при получении уведомления не запускается FirebaseMessaging.onMessage.listen ((RemoteMessage? message) {}); -> сообщение пустое ??

Исходный код:

Future<void> backgroundHandler(RemoteMessage message) async {
  await Firebase.initializeApp();
  print("Back ground method called");
}

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseMessaging.onBackgroundMessage(backgroundHandler);
  runApp(MyApp());
}


//Inside the Main Class//
@override
  void initState() {
    super.initState();

     FirebaseMessaging.instance.getInitialMessage().then((message) {
      print("Get Initial method called");

       Flutter toast.showToast(
            msg: message!.data,
            toastLength: Toast.LENGTH_SHORT,
            gravity: ToastGravity.CENTER,
            timeInSecForIosWeb: 3,
            backgroundColor: Colors.red,
            textColor: Colors .white,
            fontSize: 16.0); 


    });

    FirebaseMessaging.onMessage.listen((RemoteMessage? message) {
     print("On Message Listener is called");
      }
    });

    FirebaseMessaging.onMessageOpenedApp.listen((message) {
      print("on Message Opened is called");
     
    });

}


**Node Js Code**

var admin = require("firebase-admin");
var serviceAccount = require("xxxx Path of the json file xxxx");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

app.post('/notification',(req, res)=>{
    var registrationToken='xxxxx Token xxxxx';

    var message={
        data:{
            title:'Go Notification',
            body:'Checking the app from node',
        },
        token:registrationToken
    };
    
    admin.messaging().send(message).then((response) => {
        console.log('Successfully sent message',response);
        return res.json({status:true, msg:'Notification Sent'})
    }).catch((error) => {
        console.log('Error occurred while send the message',error);
        return res.json({status:false, msg:error})
    })

}); ```





Новый участник
Sharath Appesh is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.