Files
hackathon-innovaflow5.0-cdf…/recolecta_app/lib/app/bootstrap.dart

37 lines
1.1 KiB
Dart

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<void>((ref) async {
await dotenv.load(fileName: 'assets/.env');
await _initializeFirebase();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
});
Future<void> _initializeFirebase() async {
try {
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
} on UnsupportedError {
await Firebase.initializeApp();
}
}
@pragma('vm:entry-point')
Future<void> _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}',
);
}