firebaseGetToken function

dynamic firebaseGetToken(
  1. BuildContext context
)

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);
  });
}