Flutter firebase messaging v9.0.0 - 不触发事件

Flutter firebase messaging v9.0.0 - Not firing events

我有一个使用 firebase messaging 7.0.3 的应用程序并且一切正常。但是当我迁移到 firebase messaging 9.0.0 时,推送通知没有得到处理。

我知道该应用程序已正确 linked 到 firebase 和云消息传递,因为在后台我看到推送通知,问题是当我单击该通知时该应用程序不处理此事件。另外,当应用程序在前台时,不会触发接收通知的事件。

具体来说,函数 FirebaseMessaging.onMessage 和 FirebaseMessaging.onMessageOpenedApp 不工作。我的代码是:

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  print("notification: message");
}); 
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
  print("notification: resume");
});

永远不会调用打印,如果我在里面放更多代码也不会执行。

我也调用了 FirebaseMessaging.getToken,我可以获得令牌,此外,当应用程序在后台运行时,我会收到推送通知,因此 link 不是 firebase 的问题。在日志中,当我收到推送时,我可以看到一条消息:收到消息的广播。所以我假设推送在所有情况下都会到达,而我在代码中做错了。

我在 Android 和 iOS 物理设备中测试了所有情况。

有人知道为什么会这样吗?

我在迁移并升级到 9.0.0 后遇到了这个完全相同的问题。

9.0.0 插件存在一个小问题。 修复可以在这里找到: https://github.com/FirebaseExtended/flutterfire/issues/4949

长话短说,如果您导航到工厂的定义 RemoteMessage.fromMap() 使用 Cmd+ClickCtrl+Click 同时将鼠标悬停在 RemoteMessage class 上),在return 声明,将 contentAvailable: map['contentAvailable'] 更改为 contentAvailable: map['contentAvailable']??false.

通知现在又对我有用了。 在插件修复之前,这应该对您有用。