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

Flutter中添加SHA密钥后Google Auth仍无法正常工作

解决Firebase Google登录配置后仍报错的方案
  • 确认SHA密钥的完整性
    • 除调试密钥外,别漏加发布版SHA密钥(哪怕调试阶段,部分场景也会触发校验)
    • 用命令重新生成密钥时,复制内容要精准:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android(Windows用户替换路径为C:\Users\[你的用户名]\.android\debug.keystore),不要带空格或多余字符,直接粘贴到Firebase控制台的SHA列表
  • 重新替换google-services.json
    • 修改Firebase的SHA密钥后,必须下载最新的google-services.json,覆盖项目app/目录下的旧文件
    • 执行./gradlew clean(Windows用gradlew clean)清理缓存,再重新构建项目
  • 检查代码核心配置
    • 初始化GoogleSignInClient时,必须用Firebase控制台提供的Web client ID(不是Android客户端ID),示例代码:
      val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
          .requestIdToken(getString(R.string.default_web_client_id))
          .requestEmail()
          .build()
      val mGoogleSignInClient = GoogleSignIn.getClient(this, gso)
      
    • 确认strings.xml中已添加default_web_client_id,值与Firebase提供的一致
  • 验证Firebase与Google Cloud配置
    • 进入Firebase控制台Authentication -> Sign-in method,确认Google登录已启用,且支持的邮箱域包含测试邮箱
    • 打开对应项目的Google Cloud Console,检查OAuth consent screen是否添加了测试用户(未发布应用需手动添加)
  • 排查设备环境问题
    • 调试用的模拟器/物理设备必须登录有效Google账号,且网络正常
    • 清除Google Play服务缓存:设置 -> 应用 -> Google Play服务 -> 存储 -> 清除缓存
    • 更换设备/模拟器测试,排除单设备环境异常
  • 定位具体报错信息
    • 在登录回调中打印完整异常日志,比如exception.printStackTrace(),根据错误码针对性处理(如12500为配置错误,10为签名不匹配)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:42:08