Flutter Firebase多环境配置失效:dev环境仍加载prod数据
问题排查与解决方案
核心问题定位
执行flutter run --flavor dev -t lib/main_dev.dart后,应用仍加载Firebase生产环境(prod)数据,而非开发环境(dev)数据,需从以下关键配置环节逐一排查:
1. 确认firebase_options.dart的导入逻辑
检查main_dev.dart是否正确导入dev环境的配置文件,而非prod版本:
// 正确导入dev环境配置 import 'dev/firebase_options.dart' as firebase_dev; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 初始化dev环境Firebase await Firebase.initializeApp( options: firebase_dev.DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); }
若导入的是prod/firebase_options.dart,会直接导致加载生产环境配置。
2. 验证Android端google-services.json关联
- 核对
app/src/dev/google-services.json的project_id、client下的package_name(需包含.dev后缀,对应build.gradle中的applicationIdSuffix ".dev"),确认属于dev Firebase项目。 - 检查build.gradle配置,确保未硬编码指向prod的配置文件:
android { flavorDimensions "default" productFlavors { dev { dimension "default" applicationIdSuffix ".dev" } prod { dimension "default" } } }
Google Services插件会自动按flavor加载对应目录的google-services.json,手动指定路径会覆盖默认逻辑。
3. 清理缓存与验证构建参数
- 执行
flutter clean后,手动删除build目录,同时清除Android Studio缓存(File → Invalidate Caches... → Restart),避免旧配置残留。 - 确认
flutter run参数顺序正确,正确格式为:flutter run --flavor dev -t lib/main_dev.dart
参数顺序错误可能导致flavor未被正确识别。
4. 检查Firebase初始化全局一致性
排查项目中是否有其他地方硬编码初始化Firebase为prod配置,比如全局工具类、初始化函数中是否错误引用prod的firebase_options.dart。
内容的提问来源于stack exchange,提问作者Chloé
相关产品推荐
相关产品推荐

