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

自动登录触发FirebaseException错误:未创建默认Firebase应用

问题原因

你遇到的[core/no-app]错误,核心问题有两点:

  1. 你在类初始化阶段就直接声明final FirebaseAuth _auth = FirebaseAuth.instance,此时Firebase还未完成初始化,直接调用instance会触发未初始化错误。
  2. initState里的start()是异步方法,build方法不会等待它执行完成,页面渲染时Firebase初始化可能还未结束,导致后续操作报错。

解决方案

最稳妥的处理方式是在应用启动入口main函数中完成Firebase初始化,确保整个应用在调用Firebase服务前,初始化流程已经完成。同时调整FirebaseAuth实例的获取时机。

修改后的代码示例

1. 调整应用入口main.dart

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:workout_app/your_homepage_path.dart'; // 替换为你的HomePage实际路径

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(); // 优先完成Firebase全局初始化
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: const HomePage(),
      // 其他应用配置(主题、路由等)
    );
  }
}

2. 修正HomePage内的代码

class Main extends State<HomePage> {
  FirebaseAuth? _auth; // 先声明为可空类型,延后初始化

  String? uid;
  String? name;
  String? userEmail;
  String? imageUrl;

  @override
  void initState() {
    super.initState();
    start();
  }

  void start() async {
    _auth = FirebaseAuth.instance; // 此时Firebase已完成初始化,可安全获取实例
    SharedPreferences prefs = await SharedPreferences.getInstance();
    bool? authSignedIn = prefs.getBool('auth');
    print(authSignedIn);

    final User? user = _auth?.currentUser;

    if (authSignedIn == true) {
      if (user != null) {
        uid = user.uid;
        name = user.displayName;
        userEmail = user.email;
        imageUrl = user.photoURL;
        prefs.setString('name', name!);
        prefs.setString('id', uid!);
      }
    }
  }

  // 原build方法及路由代码保持不变
}

额外检查项

  • 确认pubspec.yaml中已添加正确的Firebase依赖,且执行过flutter pub get
  • 检查Firebase控制台下载的配置文件:Android的google-services.json需放在android/app目录,iOS的GoogleService-Info.plist需加到Xcode项目中
  • 重启应用并清除缓存,避免旧状态干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:43:23