I have upgraded firebase from ^7.0.0
to ^8.0.0-dev.15
and now I am getting erros, that I am not sure how to fix.
Here is my legacy working code:
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;
});
});
}
I am getting the following errors:
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
^^^^^^^^^^^^^^^^^^^^^^^
Now, I started fixing the code as per the official documentation but cannot get it entirely right, will appreciate your help:
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;
});
});
}