You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter移动端Firebase微软认证报错:未创建默认Firebase应用

Flutter Firebase微软认证出现[core/no-app]错误的解决建议

问题描述

运行Flutter移动端应用,通过Firebase实现微软认证时触发以下错误:

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

已尝试的操作:

  • 通过FlutterFire CLI完成安装配置并关联Firebase项目
  • 升级Flutter版本
  • 在main函数中添加Firebase初始化逻辑(代码如下)

用户提供的代码:

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart'; // 注:原代码缺失分号,需修正语法错误

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

// _LoginWidgetState类中的登录方法
Future<void> performLogin(String provider, List<String> scopes,
    Map<String, String> parameters) async {
  try {
    await FirebaseAuthOAuth().openSignInFlow(provider, scopes, parameters);
  } on PlatformException catch (error) {
    debugPrint("${error.code}: ${error.message}");
  }
  Navigator.of(context).pushNamed('/home');
}

解决建议

  • 指定Firebase初始化配置参数
    确保初始化时传入平台专属配置,避免默认配置缺失。修改main函数中的初始化代码:

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  • 确保Firebase初始化完成后再执行登录逻辑
    在登录方法中增加初始化检查,避免因异步初始化未完成触发错误:

    Future<void> performLogin(String provider, List<String> scopes,
        Map<String, String> parameters) async {
      // 检查Firebase是否已初始化
      if (Firebase.apps.isEmpty) {
        await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
      }
      try {
        await FirebaseAuthOAuth().openSignInFlow(provider, scopes, parameters);
      } on PlatformException catch (error) {
        debugPrint("${error.code}: ${error.message}");
      }
      Navigator.of(context).pushNamed('/home');
    }
    
  • 验证平台配置文件

    • Android:确认android/app/google-services.json存在且配置正确,包名与Firebase项目注册的一致
    • iOS:确认ios/Runner/GoogleService-Info.plist已添加到项目,Bundle ID与Firebase项目匹配
  • 清理项目缓存并重新构建
    执行以下命令清除旧配置残留:

    flutter clean
    flutter pub get
    # Android额外操作
    cd android && ./gradlew clean && cd ..
    # iOS额外操作
    cd ios && pod deintegrate && pod install && cd ..
    
  • 检查依赖包版本兼容性
    确认firebase_auth_oauth版本与firebase_core、firebase_auth版本匹配,避免版本冲突导致初始化失败,可在pub.dev查看包的版本兼容说明并更新。

内容的提问来源于stack exchange,提问作者Oluwaseun Fabiyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:50:23