在Flatter中收到Firebase消息^8.0.0-dev.8通知时,如何运行函数?

在Flatter中收到Firebase消息^8.0.0-dev.8通知时,如何运行函数?,firebase,flutter,push-notification,firebase-cloud-messaging,android-notifications,Firebase,Flutter,Push Notification,Firebase Cloud Messaging,Android Notifications,您好,我正在使用Flatter构建我的应用程序,每当收到新通知时,我都需要显示警报。 我一直在使用firebase\u messaging 7.0.3,但在onBackgroundMessage中遇到了一个错误。快速的谷歌搜索帮助我发现我得到的错误还没有被修复。然而,其中一位开发人员在20天前发布了一个更新,关于修复该问题的软件包的新版本。 新版本删除了旧的onMessage处理程序,并引入了新的onMessage处理程序。 现在他们有了新的返回流的事件处理程序,但无法通过使用 .listen(

您好,我正在使用Flatter构建我的应用程序,每当收到新通知时,我都需要显示警报。
我一直在使用
firebase\u messaging 7.0.3
,但在
onBackgroundMessage
中遇到了一个错误。快速的谷歌搜索帮助我发现我得到的错误还没有被修复。然而,其中一位开发人员在20天前发布了一个更新,关于修复该问题的软件包的新版本。
新版本删除了旧的onMessage处理程序,并引入了新的onMessage处理程序。 现在他们有了新的返回流的事件处理程序,但无法通过使用
.listen()
函数。每当我收到通知时,就会得到一个this:
D/FLTFireMsgReceiver(22032):为控制台中打印的消息
接收广播,但
.listen()
中的代码不会执行

是一个链接,指向一篇关于Firebase Flatter的文章,该文章是使用新版本软件包的指南。 这是我的代码:

...
FirebaseMessaging.onMessage.listen((event) {
 // do something
});
FirebaseMessaging.onMessageOpenedApp.listen((event) {
 // do something
});
FirebaseMessaging.onBackgroundMessage((message) {
 // do something
 return;
 }
...

我找到了一个触发事件的解决方案,就是始终调用:

等待FirebaseMessaging.instance.getToken();
就在那之后

等待Firebase.initializeApp();

一旦我调用它,
firebase messaging.onMessage.listen
会按预期捕获事件。

我也面临同样的问题,你能解决这个问题吗?我最终使用了
firebase\u messaging:^7.0.3
。我通过将
Future-myBackgroundMessageHandler(Map message)async{}
添加到文件的顶部(在导入下),并设置
onBackgroundMessage:myBackgroundMessageHandler
来修复我遇到的错误。它现在工作得很好,我还没有遇到任何错误。似乎不需要等待GetTokenTanks,这是经过几天搜索后的解决方案