firebaseGetToken function
Implementation
firebaseGetToken(BuildContext context) async {
dprint ("Firebase messaging: _getToken");
// iOS
NotificationSettings settings = await FirebaseMessaging.instance.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
dprint('User granted permission: ${settings.authorizationStatus}');
// Set the background messaging handler early on, as a named top-level function
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
// Create an Android Notification Channel.
//
// We use this channel in the `AndroidManifest.xml` file to override the
// default FCM channel to enable heads up notifications.
// await flutterLocalNotificationsPlugin
// .resolvePlatformSpecificImplementation<
// AndroidFlutterLocalNotificationsPlugin>()
// ?.createNotificationChannel(channel);
// Update the iOS foreground notification presentation options to allow
// heads up notifications.
await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
alert: true,
badge: true,
sound: true,
);
setToken(await FirebaseMessaging.instance.getToken());
_tokenStream = FirebaseMessaging.instance.onTokenRefresh;
_tokenStream!.listen(setToken);
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
if (message.notification == null)
return;
if (_lastMessageId != null)
if (_lastMessageId == message.messageId)
return;
_lastMessageId = message.messageId;
dprint("FirebaseMessaging.onMessageOpenedApp $message ${message.from}");
if (message.data['chat'] != null){
if (message.data['chat'] == "true") {
// if (_chatCallback != null)
// _chatCallback!();
return;
}
}
if (_notifyCallback != null)
_notifyCallback!(message);
});
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
dprint("FirebaseMessaging.onMessage ${message.messageId}" );
dprint("${message.data['chat']}" );
if (_lastMessageId != null)
if (_lastMessageId == message.messageId)
return;
_lastMessageId = message.messageId;
if (message.data['chat'] != null){
if (message.data['chat'] == "true") {
// if (_chatCallback != null)
// _chatCallback!();
return;
}
}
FlutterAppBadger.updateBadgeCount(1);
if (_notifyCallback != null)
_notifyCallback!(message);
});
}