init method

Future<void> init(
  1. BuildContext context, {
  2. FirebaseOptions? android,
  3. FirebaseOptions? ios,
  4. FirebaseOptions? macos,
  5. FirebaseOptions? windows,
  6. FirebaseOptions? linux,
  7. FirebaseOptions? web,
})

Implementation

Future<void> init(BuildContext context, {
  FirebaseOptions? android,
  FirebaseOptions? ios,
  FirebaseOptions? macos,
  FirebaseOptions? windows,
  FirebaseOptions? linux,
  FirebaseOptions? web,
}) async {
  if (_isInitialized) return;

  _context = context;

  try {
    WidgetsFlutterBinding.ensureInitialized();
    // Apply optional configurations before initializing
    if (android != null) _DefaultFirebaseOptions.android = android;
    if (ios != null) _DefaultFirebaseOptions.ios = ios;
    if (macos != null) _DefaultFirebaseOptions.macos = macos;
    if (windows != null) _DefaultFirebaseOptions.windows = windows;
    if (linux != null) _DefaultFirebaseOptions.linux = linux;
    if (web != null) _DefaultFirebaseOptions.web = web;



    await firebase;


    // Optional: Configure Crashlytics if needed
    // FlutterError.onError =
    //     FirebaseCrashlytics.instance.recordFlutterFatalError;

    _isInitialized = true;
    // AppUtils.log("Firebase initialized successfully");
  } catch (e) {
    // AppUtils.log('Firebase initialization error: $e');
  }
}