Flutter应用出现Firebase初始化错误:projectId不可为null
错误本质
该报错是Firebase初始化阶段,配置解析时未获取到必填的projectId字段,触发了源码里的断言校验。
排查与解决步骤
- 核对
Firebase.initializeApp传入参数
如果你采用手动传参的方式初始化Firebase,检查FirebaseOptions构造参数是否漏填projectId,必填参数参考如下示例:void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: const FirebaseOptions( apiKey: "xxx", appId: "xxx", messagingSenderId: "xxx", projectId: "xxx", // 必须填写,不可为null ), ); runApp(const MyApp()); } - 校验自动生成的配置文件
如果你通过flutterfire configure自动生成配置,检查项目lib/firebase_options.dart文件中,对应运行平台的配置项projectId是否为空。如果存在缺失,重新执行flutterfire configure命令,选择正确的Firebase项目和适配平台后重新生成配置即可。 - 检查原生端配置文件
- Android平台:查看
android/app/google-services.json文件,确认project_id字段存在且值有效,若无效直接从Firebase控制台重新下载对应Android应用的配置文件替换即可。 - iOS平台:查看
ios/Runner/GoogleService-Info.plist文件,确认PROJECT_ID键对应的值存在且有效,无效则从Firebase控制台重新下载替换。
- Android平台:查看
- 验证依赖兼容性
若以上配置均无问题,可能是firebase_core相关依赖版本兼容问题导致配置读取失败,执行flutter pub upgrade firebase_core将firebase_core升级到最新稳定版,重新编译运行即可。
内容的提问来源于stack exchange,提问作者Code Hunter
相关产品推荐
相关产品推荐

