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

Flutter集成Google登录遇12500错误,接入Firebase后失效求助

解决Flutter接入Firebase后Play Store中Google登录失效的方案

以下是针对你遇到的「接入Firebase后Play Store版本Google登录抛出ApiException」问题的常见解决方案:

  • 同步Play Store应用签名指纹到Firebase和Google Cloud
    发布到Play Store后,应用会使用Play App Signing提供的签名密钥,而非你本地的上传密钥。需要将Play Store生成的SHA-1/SHA-256指纹添加到两个平台:

    1. 登录Play Console → 你的应用 → 发布 → 设置 → 应用签名 → 复制「应用签名密钥证书」下的SHA-1和SHA-256
    2. 打开Firebase控制台 → 项目设置 → 添加指纹,粘贴上述两个值
    3. 打开Google Cloud控制台 → APIs与服务 → 凭据 → 找到你的Android客户端ID → 编辑 → 添加这两个SHA指纹
  • 检查OAuth 2.0客户端ID配置
    接入Firebase时会自动生成新的Android客户端ID,确保你的Flutter代码使用的是包含Play Store指纹的客户端ID,或者更新原有客户端ID的指纹信息。同时确认包名与Firebase、Google Cloud中的配置完全一致。

  • 更新google-services.json文件
    在Firebase控制台添加完新指纹后,下载最新的google-services.json文件,替换Flutter项目android/app目录下的旧文件,然后清理并重建项目。

  • 排查ApiException错误码
    通过捕获异常获取具体错误码,能快速定位问题:

    try {
      // Google登录逻辑
    } catch (error) {
      if (error is ApiException) {
        print('Google登录错误码: ${error.statusCode}');
        // 根据错误码处理:
        // 12500: 网络问题或配置无效
        // 10: 开发者配置错误(大概率凭据问题)
        // 7: 权限拒绝(检查OAuth同意屏幕)
      }
    }
    
  • 配置OAuth同意屏幕
    若你的应用是公开应用,需在Google Cloud控制台将OAuth同意屏幕设置为「生产」状态;若仍处于「测试」状态,仅添加的测试用户能登录,普通用户会报错。同时确认请求的权限范围已在同意屏幕中正确列出。

  • 清理并重建项目
    旧的构建缓存可能导致配置不生效,执行以下命令:

    flutter clean
    flutter pub get
    cd android && ./gradlew clean
    cd .. && flutter build appbundle
    

内容的提问来源于stack exchange,提问作者Prashant Adhikari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:05:54