I am inserting Firebase Cloud Messaging for push notification on my Flutter app but I am having trouble with the RemoteNotification that says "A value of type ‘RemoteNotification?’ can’t be assigned to a variable of type ‘RemoteNotification’."
I tried adding "?" on the RemoteNotofication but I am having errors on my AlertDialog title and body as I put notification.title inside it.
here is my code
void initState() {
super.initState();
FirebaseMessaging.onMessage.listen((RemoteMessage message){
RemoteNotification? notification = message.notification;
AndroidNotification? android = message.notification?.android;
if(notification != null && android != null){
flutterLocalNotificationsPlugin.show(notification.hashCode,
notification.title,
notification.body,
NotificationDetails(
android: AndroidNotificationDetails(
channel.id,
channel.name,
channel.description,
color: Colors.blue,
playSound: true,
icon: 'assets/bluelogo.png',
),
)
);
}
});
FirebaseMessaging.onMessage.listen((RemoteMessage message){
print('A new onMessageOpenedApp event was puclished!');
RemoteNotification notification = message.notification;
AndroidNotification android = message.notification?.android;
if (notification != null && android != null) {
showDialog(context: context, builder: (_) {
return AlertDialog(
title: Text(notification.title),
content: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(notification.body)
],
),
),
);
});
}
});
}
2
Answers
After adding ‘?’ in RemoteNotification add ‘??’ in text widget and default text as below code
I’ve noticed you have assigned 2 listeners to the same event…
By your print statement I think you meant to write a listener for onMessageOpenedApp? Do check that out.
Coming to your error, yes You have to keep RemoteNotification nullable since it can be null.
Now the showDialog() should be called only if not null . The title and body can be null too so make them null aware.
An example :