Flutter中同时配置两个Firebase项目时遭遇firebase_app_id_file冲突问题
在Flutter中配置多个Firebase项目时解决FirebaseAppIDAlreadyExistsException错误
问题场景
要在Flutter应用中同时接入两个不同的Firebase项目,执行了以下配置命令:
flutterfire configure --project="proj1" --platforms="android,ios" --out="lib/firebase_options.dart" -y; flutterfire configure --project="proj2" --platforms="android,ios" --out="lib/proj2.firebase_options.dart";
同时编写了初始化两个Firebase应用的代码:
import 'firebase_options.dart' as proj1; import 'proj2.firebase_options.dart' as proj2; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Future.wait([ Firebase.initializeApp( options: proj1.DefaultFirebaseOptions.currentPlatform, ), Firebase.initializeApp( name: "Project2", options: proj2.DefaultFirebaseOptions.currentPlatform, ), ]); runApp(MyApp()); }
但执行第二个flutterfire configure命令时,系统询问是否覆盖已由proj1生成的firebase_app_id_file.dart,选择“no”(proj1为主项目)后,抛出以下错误:
Unhandled exception: FirebaseAppIDAlreadyExistsException: Firebase app ID file {{project_path}}/ios/firebase_app_id_file.json is already up to date. #0 FirebaseAppIDFile.write (package:flutterfire_cli/src/firebase/firebase_app_id_file.dart:71:11) <asynchronous suspension>
解决方法
这个错误的核心原因是:flutterfire configure默认会为iOS平台生成firebase_app_id_file.json,而主项目的该文件已存在,且你选择不覆盖时,CLI会因无法写入文件抛出异常。可以通过以下方式解决:
方法1:为第二个项目跳过iOS App ID文件生成
执行第二个配置命令时,添加--ios-app-id-file=false参数,让CLI跳过iOS平台的firebase_app_id_file.json生成:
flutterfire configure --project="proj2" --platforms="android,ios" --out="lib/proj2.firebase_options.dart" --ios-app-id-file=false;
这种方式不会影响第二个Firebase项目的初始化,因为firebase_options.dart已经包含了所有必要的配置信息,firebase_app_id_file.json主要用于CLI内部的配置同步,不影响应用运行。
方法2:手动处理多项目iOS配置(进阶)
如果需要为第二个项目保留完整的iOS配置能力,可以手动操作:
- 从Firebase控制台下载proj2的
GoogleService-Info.plist文件 - 将文件重命名为
GoogleService-Info-proj2.plist,放入iOS项目的Runner目录中 - 在初始化第二个Firebase应用时,无需额外配置,
firebase_options.dart已包含对应的参数,应用运行时会自动读取正确的配置
Android平台注意事项
Android平台不会出现此类问题,flutterfire configure会自动为不同项目生成对应的配置。如果需要区分构建变体,可以将proj2的google-services.json重命名后放入对应变体的目录,并在build.gradle中配置变体的服务文件路径。
内容的提问来源于stack exchange,提问作者OutdatedGuy
相关产品推荐
相关产品推荐

