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

集成Firebase后Google登录报错12500及SHA1密钥问题求助

解决Google登录ApiException:12500及SHA1冲突问题

一、先确认你使用的SHA1密钥来源

你生成SHA1总是得到同一个值,是因为一直用的是同一个签名文件:

  • Debug环境:默认使用Android Studio自带的debug keystore,路径为~/.android/debug.keystore(Windows系统是C:\Users\<你的用户名>\.android\debug.keystore),这个文件的SHA1固定不变,除非你替换或删除它。
  • Release环境:你用的是自己创建的keystore文件,签名文件不变的话,生成的SHA1自然一致。

提取对应环境的SHA1:

  • 提取debug SHA1,在终端运行:
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    
  • 提取release SHA1,替换为你的keystore信息后运行:
    keytool -list -v -keystore <你的keystore路径> -alias <你的别名>
    

二、解决包名+指纹已被占用的问题

提示"The request failed because the Android package name and fingerprint are already in use",说明你的应用包名+当前SHA1已经绑定到另一个Google Cloud/Firebase项目,处理方式:

  1. 找到已绑定的项目:登录Google Cloud Console或Firebase控制台,通过搜索包名定位到关联的项目。
  2. 处理关联关系:
    • 若该项目已废弃,直接删除项目下的对应应用关联;
    • 若项目仍在使用,将当前项目的SHA1添加到该项目的OAuth 2.0客户端ID配置中(Google Console → API和服务 → 凭据 → 找到对应Android客户端ID → 编辑 → 添加SHA1指纹),实现同一包名+SHA1在多项目中复用。

三、统一Google Console与Firebase的SHA1密钥

  1. 登录Firebase控制台,进入项目设置 → 应用 → 找到你的Android应用,添加/替换为你确认的正确SHA1。
  2. 登录Google Console,进入对应项目 → API和服务 → 凭据 → 找到Android类型的OAuth客户端ID,确保SHA1与Firebase完全一致;若无对应客户端ID,直接创建,包名和SHA1与Firebase保持一致。
  3. 下载最新的google-services.json文件,替换项目中旧文件,重新编译运行。

四、额外检查项

  • 确认测试设备上的Google账号状态正常,无限制;
  • 检查模块级build.gradle中的applicationId与Google Console/Firebase中的包名完全匹配;
  • 若使用Flutter,确保google-services.json放在android/app目录下,且build.gradle已正确配置Google服务插件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:35:26