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

Flutter集成Cloud Firestore遇minSdk与Multidex双重报错求助

解决Flutter连接Cloud Firestore的系列问题

1. 处理minSdkVersion低于19的问题

打开android/app/build.gradle,找到defaultConfig代码块,直接修改minSdkVersion为19:

defaultConfig {
    // 保留其他原有配置
    minSdkVersion 19
}

2. 解决方法数超过64K的Multidex问题

步骤1:开启Multidex

在上述defaultConfig块中添加multiDexEnabled true:

defaultConfig {
    // 保留其他原有配置
    multiDexEnabled true
}

步骤2:添加Multidex依赖

在dependencies代码块中加入Multidex依赖:

dependencies {
    // 保留其他原有依赖
    implementation 'com.android.support:multidex:1.0.3'
}

步骤3:配置Application类

  • 若没有自定义Application类,修改AndroidManifest.xml的application标签:
<application
    android:name="android.support.multidex.MultiDexApplication"
    <!-- 保留其他原有属性 -->
>
  • 若有自定义Application类,让它继承MultiDexApplication,或者在attachBaseContext方法中调用MultiDex.install(this):
public class MyApplication extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

3. 修复Multidex配置后的Firebase认证异常

检查依赖版本一致性

运行flutter pub deps查看依赖树,确保Firebase Auth、Cloud Firestore等相关依赖的版本统一,避免版本冲突导致功能异常。若发现版本不一致,可在android/build.gradle中强制指定统一版本:

ext {
    firebaseVersion = "29.0.0" // 根据实际兼容版本调整
}

清理缓存并重建

依次执行以下命令:

flutter clean
rm -rf android/.gradle
flutter pub get
flutter run

验证Firebase配置文件

确认android/app目录下的google-services.json是从Firebase控制台下载的最新文件,未被篡改。

检查认证初始化逻辑

确保Firebase初始化代码在main函数中正确执行:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

验证Cloud Firestore连接

完成上述步骤后,用以下测试代码验证Firestore读写功能:

// 写入测试数据
FirebaseFirestore.instance.collection('test').doc('demo').set({
  'name': 'Test',
  'value': 123
}).then((_) {
  print('写入成功');
}).catchError((error) {
  print('写入失败: $error');
});

// 读取测试数据
FirebaseFirestore.instance.collection('test').doc('demo').get().then((doc) {
  if (doc.exists) {
    print('读取数据: ${doc.data()}');
  } else {
    print('文档不存在');
  }
}).catchError((error) {
  print('读取失败: $error');
});

内容的提问来源于stack exchange,提问作者Syamemera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:06:24