initializeMessagingEffect top-level property

Effect initializeMessagingEffect
final

Implementation

final initializeMessagingEffect = when<AppStarted>((event) async {
  final messaging = FirebaseMessaging.instance;

  await messaging.requestPermission(
    alert: true,
    announcement: false,
    badge: true,
    carPlay: false,
    criticalAlert: false,
    provisional: false,
    sound: true,
  );

  await messaging.setForegroundNotificationPresentationOptions(
    alert: false,
    badge: false,
    sound: false,
  );

  final initialMessage = await messaging.getInitialMessage();

  if (initialMessage != null) {
    dispatch(MessageReceived(initialMessage));
  }

  FirebaseMessaging.onMessageOpenedApp.listen((message) {
    dispatch(MessageReceived(message));
  });

  FirebaseMessaging.onMessage.listen((message) {
    dispatch(MessageReceived(message));
  });
});