You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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é

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:12:38