flutter - firebase messaging not showing in mobile phone

3,254

To add on what has been mentioned in the comments, Firebase Cloud Messaging Android SDK won't display the message on the notification tray if the app is running on the foreground. Though the FCM SDK will still be able to receive the payload through the onMessage event, as displayed in the logs.

If you'd still like to display a notification while the app is visible, you can handle the onMessage event and display the payload using flutter_local_notificaions plugin. You can check this documentation on how to handle this use case for newer versions of firebase_messaging.

Share:
3,254
questionasker
Author by

questionasker

I'm Web, Unity3D & Flutter Developer. I love to share my ideas at my web, please visit my website for any tutorial related to marketing, programming, docker, linux, etc

Updated on December 11, 2022

Comments

  • questionasker
    questionasker over 1 year

    I try to setup push notification to my mobile apps using flutter firebase messaging.

    I have doing below things :

    1. Setup firebase
    2. Download google-service.json to android/app folder
    3. Initialize firebase messaging at Home Screen

    However, when I try send message from firebase console, my mobile phone not showing the notification.

    By debugging I can see my mobile phone receive the push notif :

    I/flutter (17004): on message {notification: {body: message 18, title: test 18}, data: {}}
    I/flutter (17004): on message {notification: {body: message 19, title: test 19}, data: {}}
    I/flutter (17004): on message {notification: {body: message 20, title: test 20}, data: {}}
    

    But it show nothing on my mobile phone.

    My flutter code at home screen :

    class HomeScreen extends StatefulWidget {
      @override
      _HomeScreenState createState() => _HomeScreenState();
    }
    
    class _HomeScreenState extends State<HomeScreen> {     
    
    
    FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();
        
          @override
            void initState() {
              // TODO: implement initState
              super.initState();
              
              _firebaseMessaging.configure(
                onMessage: (Map<String, dynamic> message) {
                  print('on message $message');
                  //_showItemDialog(message);
                },
                onResume: (Map<String, dynamic> message) {
                  print('on resume $message');
                  //_showItemDialog(message);
                },
                onLaunch: (Map<String, dynamic> message) {
                  print('on launch $message');
                  //_showItemDialog(message);
                },
              );
              _firebaseMessaging.requestNotificationPermissions(
                  const IosNotificationSettings(sound: true, badge: true, alert: true));
                  _firebaseMessaging.getToken().then((token){
                    print('>>>token='+token);
              });
            }
    
     ...
    
    }
    

    I have tried to send messaging using FCM API via postman, but same result (get message in debug console, but not in mobile phone)

    Any idea how to solve ?