Flutter Firebase谷歌登录报错ApiException:10求助
解决Firebase Google登录ApiException: 10错误(包名+SHA指纹重复问题)
问题背景
连续两天遇到Firebase Google登录失败,错误提示:
Google: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
已完成基础配置:
- 生成并配置
firebase_options.dart - 安装firebase-tools
- 完成Android端gradle配置(
android/build.gradle、app/build.gradle) - Firebase初始化代码正确
- SHA密钥已多次确认无误
但创建OAuth客户端ID时,系统提示**"请求失败,Android包名和指纹已被使用"**,登录功能始终无法正常运行。
核心解决步骤
1. 核查现有OAuth客户端ID
- 进入Google Cloud控制台(Firebase的OAuth凭据托管在此),定位到对应项目
- 导航至API和服务 > 凭据
- 查找所有Android类型的OAuth客户端ID,确认是否存在与当前项目包名+SHA指纹完全匹配的条目:
- 若存在:无需重复创建,直接使用该客户端ID。重新下载Firebase的
google-services.json(确保包含该凭据)并替换项目中的对应文件。
- 若存在:无需重复创建,直接使用该客户端ID。重新下载Firebase的
2. 处理重复凭据冲突
如果找到的重复客户端ID属于其他项目:
- 若对应项目已废弃:直接删除该重复凭据,回到Firebase控制台重新生成当前项目的OAuth客户端ID
- 若对应项目仍在使用:生成新的SHA指纹(比如切换debug/release签名文件,或创建新的签名密钥),用新指纹创建OAuth客户端ID
3. 校验签名与gradle配置一致性
- 确认
app/build.gradle中signingConfigs配置的签名文件(.jks)与生成SHA指纹时使用的文件完全一致 - 检查buildTypes的签名配置关联是否正确:
当前release buildType使用了signingConfigs.debug,若测试release包需改为对应release签名:buildTypes { release { signingConfig signingConfigs.release } }
4. 清理缓存并重建项目
- 执行Android Studio的Build > Clean Project和Build > Rebuild Project
- 清除测试设备上应用的缓存和数据
- 重启Android Studio与测试设备
5. 代码细节补全
确保正式代码中Firebase初始化传入正确配置:
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
内容的提问来源于stack exchange,提问作者user3926141
相关产品推荐
相关产品推荐

