【发布时间】:2021-06-12 03:24:54
【问题描述】:
我已将 firebase 从 ^7.0.0 升级到 ^8.0.0-dev.15,现在出现错误,不知道如何修复。
这是我的遗留工作代码:
void initFirebase() {
_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, provisional: true));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {});
_firebaseMessaging.getToken().then((String token) {
assert(token != null);
setState(() {
_notificationToken = token;
});
});
}
我收到以下错误:
lib/files/signin.dart:52:7: Error: No named parameter with the name 'onLaunch'.
onLaunch: (Map<String, dynamic> message) async {
^^^^^^^^
lib/files/signin.dart:62:24: Error: The getter 'onIosSettingsRegistered' isn't defined for the class 'FirebaseMessaging'.
- 'FirebaseMessaging' is from 'package:firebase_messaging/firebase_messaging.dart' ('/C:/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-8.0.0-dev.15/lib/firebase_messaging.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'onIosSettingsRegistered'.
_firebaseMessaging.onIosSettingsRegistered
^^^^^^^^^^^^^^^^^^^^^^^
现在,我开始按照官方文档修复代码,但无法完全正确,感谢您的帮助:
void initFirebase() {
FirebaseMessaging.onMessage.listen(
(RemoteMessage message) {
print("onMessage: $message");
});
FirebaseMessaging.onMessageOpenedApp.listen(
(RemoteMessage message) {
print("onMessageOpenedApp: $message");
});
NotificationSettings settings = messaging.requestPermission (
sound: true, badge: true, alert: true, provisional: true,
);
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {});
_firebaseMessaging.getToken().then((String token) {
assert(token != null);
setState(() {
_notificationToken = token;
});
});
}
【问题讨论】:
标签: firebase flutter firebase-cloud-messaging