扑扑-Firebase消息未显示在手机中

时间:2019-05-03 03:31:46

标签: firebase dart flutter firebase-cloud-messaging

我尝试使用抖动firebase messaging设置对移动应用的推送通知。

我正在做以下事情:

  1. 设置Firebase
  2. 将google-service.json下载到android / app文件夹
  3. 在主屏幕上初始化Firebase消息

但是,当我尝试从Firebase控制台发送消息时,我的手机未显示通知

通过调试,我可以看到我的手机收到了推送通知:

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: {}}

但是它在我的手机上什么也没显示。

我在主屏幕上的颤动代码:

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);
          });
        }

 ...

}

我试图通过邮递员使用FCM API发送消息,但结果相同(在调试控制台中获取消息,但在移动电话中未获取消息)

有什么办法解决吗?

1 个答案:

答案 0 :(得分:1)

补充评论中提到的内容,Firebase Cloud Messaging Android SDK 不会在通知托盘 if the app is running on the foreground 上显示消息。尽管 FCM SDK 仍然可以通过 onMessage 事件接收负载,如日志中所示。

如果您仍希望在应用可见时显示通知,您可以处理 onMessage 事件并使用 flutter_local_notificaions 插件显示有效负载。您可以查看此 documentation 以了解如何为较新版本的 firebase_messaging 处理此用例。