internalInit method

  1. @override
Future<void> internalInit()
override

Implementation

@override
Future<void> internalInit() async {
  try {
    await Firebase.initializeApp();
    instance = FirebaseMessaging.instance;
    await instance?.setForegroundNotificationPresentationOptions();

    FirebaseMessaging.onMessage.listen(
      (message) {
        final localNotification = NotificationModel(
          id: message.hashCode,
          title: message.notification?.title,
          body: message.notification?.body,
          payload: message.data.toString(),
        );

        SeedKitLoggerService.i("onMessage MESSAGE: ${localNotification.toString()}");

        _streamControllerOnMessage.add(localNotification);
      },
    );

    FirebaseMessaging.onMessageOpenedApp.listen(
      (message) {
        final deepLink = NotificationModel.fromMap(message.data).deeplink;
        SeedKitLoggerService.i("opened DEEPLINK: $deepLink");
        _streamControllerOpenedApp.add(deepLink);
      },
    );

    FirebaseMessaging.instance.onTokenRefresh.listen((token) async {
      SeedKitLoggerService.i("updated PUSH_TOKEN: $token");
      _token = token;
      _streamControllerToken.add(_token);
    });

    await getToken();

    SeedKitLoggerService.i("FcmModule.internalInit SUCCESS");
  } catch (e, s) {
    SeedKitLoggerService.e("FcmModule.internalInit ERROR: $e", stackTrace: s);
  }
}