Flutter中FirebaseException([core/no-app])错误修复咨询
错误原因与修复方案
错误根源
你初始化Firebase时指定了自定义应用名称quizApp,但FirebaseFirestore.instance默认会尝试关联未命名的[DEFAULT] Firebase应用,而你并没有初始化这个默认应用,因此触发了core/no-app错误。
修复方案(二选一即可)
方案一:使用默认Firebase应用(推荐)
直接去掉Firebase.initializeApp中的name参数,让Firebase自动创建[DEFAULT]应用,后续调用FirebaseFirestore.instance就能正常关联。
修改后的initFireBase函数:
Future<void> initFireBase() async { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); }
方案二:关联自定义名称的Firebase应用
如果需要保留自定义应用名称quizApp,在获取Firestore实例时,必须明确指定该应用实例:
修改PapersDataUploader中的uploadData方法:
uploadData() async { loadingStatus.value = LoadingStatus.loading; // 获取自定义名称的Firebase应用实例 final firebaseApp = Firebase.app('quizApp'); // 基于该应用初始化Firestore final fi = FirebaseFirestore.instanceFor(app: firebaseApp); try { // 后续原有代码保持不变 final manifestContent = await DefaultAssetBundle.of(Get.context!) .loadString('AssetManifest.json'); // ... 其余代码省略 } on Exception catch (e) { AppLogger.e(e); } }
内容的提问来源于stack exchange,提问作者Raşit Melih Dinçer
相关产品推荐
相关产品推荐

