Flutter Firebase应用Web端运行正常但安卓端登录失败,提示Firebase未初始化
问题修复方案
核心原因
Chrome端正常是因为Web端可通过index.html引入的Firebase CDN配置完成初始化,安卓端必须走原生初始化流程,你当前的代码和配置缺少安卓端必要的初始化逻辑。
修复步骤
1. 修正Flutter主入口初始化逻辑
在main函数中先完成Flutter绑定和Firebase初始化再启动应用,修正后的代码如下:
import 'package:flutter/material.dart'; import 'package:noteit/views/signin.dart'; import 'package:firebase_core/firebase_core.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'NoteIt', debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, ), home: const SignIn() ); } }
同时删除你代码末尾冗余的@override Widget build方法,该语法错误会导致编译异常。
2. 补全安卓Gradle配置
- 打开项目根目录下的
android/build.gradle文件,在dependencies块中添加Google服务插件依赖:
dependencies { // 原有其他依赖保留 classpath 'com.google.gms:google-services:4.3.15' // 可使用官方最新版本 }
- 打开
android/app/build.gradle文件,在文件末尾追加一行配置:
apply plugin: 'com.google.gms.google-services'
3. 确认配置文件放置位置
将从Firebase控制台下载的google-services.json文件放到android/app目录下,检查文件内的package_name字段与android/app/build.gradle中定义的applicationId完全一致。
4. 重新编译
运行以下命令清理缓存后重新编译:
flutter clean flutter pub get
卸载安卓设备上已安装的旧版本应用后重新运行安装即可。
内容的提问来源于stack exchange,提问作者SOUVIK GHOSH
相关产品推荐
相关产品推荐

