From fa8c388f076edc5ba253d2ad5f0aeffd200b89b0 Mon Sep 17 00:00:00 2001 From: vjrj Date: Thu, 5 Mar 2026 19:08:33 +0100 Subject: [PATCH] Fix Firebase initialization error - no-app exception - Add Firebase.initializeApp() call in mainCommon.dart before any Firebase-dependent code - Make mainCommon() async to support await Firebase.initializeApp() - Update mainDev.dart to properly await mainCommon() call - Add android:enableOnBackInvokedCallback='true' to AndroidManifest.xml to fix OnBackInvokedCallback warning This resolves the 'No Firebase App [DEFAULT] has been created' error that was occurring when firebase_messaging tried to access FirebaseMessaging.instance in homePage.dart. Firebase must be initialized before any Firebase APIs are used. --- lib/mainCommon.dart | 7 ++++++- lib/mainDev.dart | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/mainCommon.dart b/lib/mainCommon.dart index 023e317..51d178b 100644 --- a/lib/mainCommon.dart +++ b/lib/mainCommon.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:comunes_flutter/comunes_flutter.dart'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:get_it/get_it.dart'; import 'package:package_info_plus/package_info_plus.dart'; @@ -27,8 +28,12 @@ Future> loadSecrets() async { .load(); } -void mainCommon(List> otherMiddleware) { +Future mainCommon(List> otherMiddleware) async { WidgetsFlutterBinding.ensureInitialized(); + + // Initialize Firebase before any Firebase-dependent code runs + await Firebase.initializeApp(); + final getIt = GetIt.instance; getIt.registerSingleton(FiresApi()); loadPackageInfo().then((packageInfo) { diff --git a/lib/mainDev.dart b/lib/mainDev.dart index 12ce98e..5f4ad15 100644 --- a/lib/mainDev.dart +++ b/lib/mainDev.dart @@ -24,5 +24,5 @@ void main() async { logRedux == LogLevel.actions ? [] : [createLoggingMiddleware()]; // In development, Sentry is disabled, so we skip initialization - mainCommon(devMiddlewares); + await mainCommon(devMiddlewares); }