更新后 Flutter 上的 Firebase 消息传递

Posted

技术标签:

【中文标题】更新后 Flutter 上的 Firebase 消息传递【英文标题】:Firebase Messaging on Flutter after update 【发布时间】:2021-10-20 22:12:21 【问题描述】:

几年来,我一直在我的应用中使用 Firebase 消息传递,但在我决定更新我的应用并更新 Flutter 和插件版本后,我现有的代码停止工作。我检查了官方文档,但找不到为什么此代码不起作用的答案。我使用的代码如下。新版本发生了什么变化导致我的代码停止工作?


  @override
  void initState() 
    super.initState();
    _firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async 
        print("onMessage: $message");
      ,
      onLaunch: (Map<String, dynamic> message) async 
        print("onLaunch: $message");
      ,
      onResume: (Map<String, dynamic> message) async 
        print("onResume: $message");
      ,
    );
    _firebaseMessaging.requestNotificationPermissions(
        const iosNotificationSettings(sound: true, badge: true, alert: true));
    _firebaseMessaging.onIosSettingsRegistered
        .listen((IosNotificationSettings settings) 
      print("Settings registered: $settings");
    );
    _firebaseMessaging.getToken().then((String token) 
      assert(token != null);
      setState(() 
        _homeScreenText = "Push Messaging token: $token";
      );
      print(_homeScreenText);
    );
  

【问题讨论】:

【参考方案1】:

我认为您使用的是旧方法。这是新方法:

我的 firebase_messaging 包版本是 10.0.1。

FirebaseMessaging.onMessage.listen((RemoteMessage message) 
      RemoteNotification notification = message.notification;
      showNotification(notification);
);

FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) 
      print("onMessageOpenedApp: $message");
);

FirebaseMessaging.onBackgroundMessage((RemoteMessage message) 
      print("onBackgroundMessage: $message");
);

【讨论】:

以上是关于更新后 Flutter 上的 Firebase 消息传递的主要内容,如果未能解决你的问题,请参考以下文章

当我更新 ListView 上的列表时,Flutter 页面不会重新加载

firebase 项目所有者更改后未反映在 Flutter Web 部署上的更改

如何更新在 Firebase 托管中部署的 Flutter Web 版本

Flutter firebase realtime db 在规则中使用 displayName

Flutter Firebase:抬头通知未在后台显示

Firebase 更新时 Flutter 的错误行为