Flutter集成Firebase谷歌登录遇ApiException:10及Gradle问题求助
Flutter Firebase Google登录报错ApiException:10 及Gradle问题修复方案
核心问题分析
ApiException:10本质是OAuth客户端配置不匹配或依赖版本冲突,结合你升级/降级Flutter后出现Gradle问题的情况,大概率是Gradle配置缺失或版本不兼容导致Firebase初始化异常,进而引发登录失败。
针对性修复步骤
1. 补全根目录build.gradle的关键配置
你当前的根build.gradle缺少buildscript块,导致google-services插件无法正确加载,这是核心问题之一。修改后的根build.gradle如下:
buildscript { repositories { google() mavenCentral() } dependencies { // 版本请匹配Firebase控制台推荐的版本,当前稳定版为4.4.0 classpath 'com.google.gms:google-services:4.4.0' } } allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
2. 校验OAuth客户端完整性
- 打开Google Cloud控制台(与Firebase绑定的对应项目),进入「API和服务」→「凭据」
- 找到对应的Android OAuth客户端ID,确认:
- 包名与你app build.gradle里的
applicationId完全一致 - 已添加debug和release环境的SHA-1、SHA-256密钥(用
keytool -list -v -keystore <你的keystore路径>重新生成确认) - 如果之前创建过新Firebase项目,要确保新项目的OAuth客户端配置完全同步
- 包名与你app build.gradle里的
3. 修复Gradle版本兼容问题
降级Flutter后,需确保Gradle版本与当前Flutter版本匹配:
- 打开
android/gradle/wrapper/gradle-wrapper.properties,修改distributionUrl为对应版本(比如Flutter 3.7.x对应Gradle 7.4,Flutter 3.10+对应Gradle 8.0) - 执行
flutter clean,删除android/.gradle文件夹,再执行flutter pub get,最后同步Gradle项目
4. 统一Firebase插件版本
在pubspec.yaml中,确保google_sign_in、firebase_auth、firebase_core等插件版本与FlutterFire兼容,示例配置如下:
dependencies: flutter: sdk: flutter firebase_core: ^2.15.0 firebase_auth: ^4.10.0 google_sign_in: ^5.4.0
5. 验证签名配置
如果你用debug模式测试,确认local.properties中没有自定义签名配置覆盖默认debug keystore;如果测试release版本,需在app build.gradle中配置正确的签名信息:
signingConfigs { release { keyAlias 'your_key_alias' keyPassword 'your_key_password' storeFile file('your_keystore.jks') storePassword 'your_store_password' } } buildTypes { release { signingConfig signingConfigs.release } }
内容的提问来源于stack exchange,提问作者Sakina Ali
相关产品推荐
相关产品推荐

