gpt4 book ai didi

Flutter FirebaseMessaging - StreamSubscription 未正确处理

转载 作者:行者123 更新时间:2023-12-04 07:38:33 35 4
gpt4 key购买 nike

我有以下基本示例,它似乎无法正常工作:
pubspec.yaml:

firebase_messaging: ^10.0.0
FcmService.dart
StreamSubscription fcmListener;

void init() {
fcmListener = FirebaseMessaging.onMessage.listen((RemoteMessage message) {
// do stuff
});
}

void dispose() {
print('SUBSCRIPTION canceled');
fcmListener.cancel()
}
应用程序.dart
void init() {
fcmService.init();
// other inits()
}

void dispose() {
print('EVERYTHING disposed');
fcmService.dispose();
// other disposes()
}
问题
在我登录到我的应用程序后, init()调用 App.dart 的方法,一切都已正确设置。 FCM 服务一切正常。当我退出应用程序时, dispose()调用 App.dart 的方法,应用重定向到 Login.dart。正确的日志是 EVERYTHING disposedSUBSCRIPTION canceled .
但是,如果我再次登录(没有热重新加载应用程序)我会收到以下错误消息,关于 fcmListener = FirebaseMessaging.onMessage.listen() Unhandled Exception: Bad state: Cannot add new events while doing an addStream .虽然,FCMService 仍然按预期工作。
这只发生在他们不久前重写的新 firebase_messaging 中。我在以前版本的 firebase_messaging 中使用了相同的代码,并且没有发生此异常。
我在这里错过了什么吗?

最佳答案

尝试调用.asBroadcastStream()FirebaseMessaging.onMessage 之后:

void init() {
fcmListener = FirebaseMessaging
.onMessage
.asBroadcastStream()
.listen((RemoteMessage message) {
// do stuff
});
}
应使用 FirebaseMessaging.onMessageOpenedApp 调用相同的方法.我在 GitHub issue 中找到了这个解决方案.

关于Flutter FirebaseMessaging - StreamSubscription 未正确处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67612355/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com