import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../firebase_options.dart'; final bootstrapProvider = FutureProvider((ref) async { await dotenv.load(fileName: 'assets/.env'); await _initializeFirebase(); FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); }); Future _initializeFirebase() async { try { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); } on UnsupportedError { await Firebase.initializeApp(); } } @pragma('vm:entry-point') Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { try { await _initializeFirebase(); } catch (_) { // Ignore reinitialization errors in the background isolate. } debugPrint( 'FCM background message received: ${message.messageId} | data: ${message.data}', ); }