Flutter集成Firebase认证时配置CLI报错及应用连接失败
Flutter Firebase认证配置问题排查与修复
问题梳理
在使用flutterfire configure配置Firebase认证时遇到以下问题:
- 未输入Android应用ID(包名),触发Firebase CLI报错:
Package name for Android app cannot be empty - 输入重复包名(如
com.example.filesharewithfirebasecom.example.filesharewithfirebase)后,切换到college-c0823项目完成安卓、iOS应用注册,但因超时导致Firebase CLI返回的JSON格式错误,触发FormatException - 最终应用无法正常连接Firebase
命令行执行日志
Microsoft Windows [Version 10.0.22631.3593] (c) Microsoft Corporation. All rights reserved. E:\flutter self practice\filesharewithfirebase>flutterfire configure --project=filesharewithfirebaase i Found 11 Firebase projects. Selecting project filesharewithfirebaase. ✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos, web, windows ✔ Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'? · i Firebase android app is not registered on Firebase project filesharewithfirebaase. ⠇ Registering new Firebase android app on Firebase project filesharewithfirebaase. FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command. COMMAND: firebase apps:create android filesharewithfirebase (android) --package-name= --json --project=filesharewithfirebaase ERROR: Package name for Android app cannot be empty E:\flutter self practice\filesharewithfirebase> i Firebase android app is not registered on Firebase project filesharewithfirebaase. i Firebase android app is not registered on Firebase project filesharewithfirebaase. i Firebase android app is not registered on Firebase project filesharewithfirebaase. ⠇ Registering new Firebase android app on Firebase project filesharewithfirebaase. FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command. COMMAND: firebase apps:create android filesharewithfirebase (android) --package-name= --json --project=filesharewithfirebaase ERROR: Package name for Android app cannot be empty ✔ Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'? · com.example.filesharewithfirebasecom.example.filesharewithfirebase erfire configure i Firebase android app com.example.filesharewithfirebasecom.example.filesharewithfirebase is not registered on Firebase project college-c0823.a Firebase project to configure your Flutter application with · college-c0823 (college) i Registered a new Firebase android app on Firebase project college-c0823. i Firebase ios app com.example.filesharewithfirebase is not registered on Firebase project college-c0823. i Registered a new Firebase ios app on Firebase project college-c0823. i Firebase macos app com.example.filesharewithfirebase registered. Failed to parse JSON response from Firebase CLI. JSON response: { "status": "success", "result": { "fileName": "GoogleService-Info.plist", "fileContents": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>API_KEY</key>\n\t<string>AIzaSyA1pfZ5mtQXxChISwdgVJjUJZ-2Jsy0vHk</string>\n\t<key>GCM_SENDER_ID</key>\n\t<string>287444333228</string>\n\t<key>PLIST_VERSION</key>\n\t<string>1</string>\n\t<key>BUNDLE_ID</key>\n\t<string>com.example.filesharewithfirebase</string>\n\t<key>PROJECT_ID</key>\n\t<string>college-c0823</string>\n\t<key>STORAGE_BUCKET</key>\n\t<string>college-c0823.appspot.com</string>\n\t<key>IS_ADS_ENABLED</key>\n\t<false></false>\n\t<key>IS_ANALYTICS_ENABLED</key>\n\t<false></false>\n\t<key>IS_APPINVITE_ENABLED</key>\n\t<true></true>\n\t<key>IS_GCM_ENABLED</key>\n\t<true></true>\n\t<key>IS_SIGNIN_ENABLED</key>\n\t<true></true>\n\t<key>GOOGLE_APP_ID</key>\n\t<string>1:287444333228:ios:97573a0ab69af270b9a509</string>\n</dict>\n</plist>" } }{ "status": "error", "error": "Timed out." } FormatException: Unexpected character (at line 7, character 2) }{ ^ E:\flutter self practice\filesharewithfirebase>
修复步骤
1. 清理错误配置残留
- 删除项目中自动生成的Firebase配置文件:
- Android:
android/app/google-services.json - iOS/macOS:
ios/Runner/GoogleService-Info.plist、macos/Runner/GoogleService-Info.plist
- Android:
- 登录Firebase控制台,删除之前错误创建的重复包名安卓应用
2. 更新工具版本
执行命令确保Firebase CLI和flutterfire_cli为最新版本:
npm install -g firebase-tools dart pub global activate flutterfire_cli
3. 重新执行配置命令,规范输入参数
- 进入Flutter项目根目录,执行:
flutterfire configure --project=college-c0823 - 选择平台时按需勾选(建议先只选android、ios,减少配置项避免超时)
- 输入Android包名时严格遵循
com.xxx.xxx格式,比如com.example.filesharewithfirebase,避免重复输入
4. 解决超时解析错误
如果再次出现超时:
- 切换到稳定的网络环境,关闭代理或VPN
- 手动在Firebase控制台创建对应平台应用,下载配置文件放到项目对应目录:
- Android:将
google-services.json放入android/app/ - iOS:将
GoogleService-Info.plist放入ios/Runner/
- Android:将
- 重新执行
flutterfire configure,选择已创建的应用完成配置
5. 验证连接
配置完成后,执行以下命令验证:
flutter pub get flutter run
查看应用日志,确认Firebase初始化成功,认证功能正常运行
内容的提问来源于stack exchange,提问作者nitro five
相关产品推荐
相关产品推荐

