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

如何在Flutter的pubspec.yaml中配置无冲突的Firebase依赖

解决Flutter Firebase依赖冲突及编译错误方案

一、无冲突的依赖版本组合

直接把下面的依赖块复制到你的pubspec.yaml里,版本都是经过验证兼容的:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^2.15.0
  cloud_firestore: ^4.9.0
  firebase_auth: ^4.10.0
  firebase_storage: ^11.2.0
  firebase_messaging: ^14.6.0
  geoflutterfire: ^3.2.2

对应SDK版本要求

  • Android(android/app/build.gradle):
    • compileSdkVersion 33
    • minSdkVersion 21
    • targetSdkVersion 33
    • gradle插件版本用classpath 'com.android.tools.build:gradle:7.4.2'(与SDK版本匹配)
  • iOS(ios/Podfile):
    • 开头设置platform :ios, '12.0'

二、一步步配置流程

  1. 先清掉旧缓存,避免残留问题
    执行这两条命令:
    flutter clean
    flutter pub cache clean
    
  2. 替换pubspec里的依赖版本,然后执行flutter pub get
  3. 调整Android端配置
    打开android/app/build.gradle,把compileSdk、minSdk、targetSdk改成上面指定的版本,同步调整gradle插件版本
  4. 调整iOS端配置
    打开ios/Podfile修改平台版本,然后进入ios目录执行:
    pod deintegrate
    pod install --repo-update
    
    先解绑旧pod再重新安装,能解决大部分iOS端依赖冲突
  5. 解决剩余编译错误
    • FirebaseAppPlatform.verifyExtends找不到:完全是版本不兼容导致的,用上面的依赖组合就能解决,不用改代码
    • FallThroughError未定义:这是Dart 3.0+移除了这个类,要么把Flutter SDK升到3.13.x及以上(对应Dart 3.1),要么把代码里的FallThroughError()替换成UnimplementedError(),或者直接删掉相关代码块

三、避坑提醒

  • 所有Firebase库必须用同一大版本,比如firebase_core用2.x,其他Firebase库也得是适配2.x的版本,别混着3.x用
  • geoflutterfire的版本要和Firebase库匹配,上面的3.2.2刚好适配Firebase 2.x系列
  • 每次改完依赖,一定要清缓存再重新获取,不然旧版本文件会搞出各种奇怪问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:07:47