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

Flutter集成Firebase后Google Sign-In安卓部分设备报ApiException:10错误

解决Flutter Firebase Google Sign-In安卓发布后部分设备登录失败(ApiException:10)的问题

核心排查与修复步骤

ApiException:10本质是OAuth客户端不匹配或签名密钥配置遗漏/错误,结合你已添加三类SHA密钥的情况,重点执行以下操作:

1. 核对Google Cloud OAuth客户端配置

  • 登录Google Cloud控制台,进入项目的API和服务 > OAuth 2.0 客户端ID页面
  • 确认存在三个对应安卓客户端:
    • 包名+调试SHA密钥的客户端
    • 包名+本地发布SHA密钥的客户端
    • 包名+Play应用签名SHA密钥的客户端
  • 若缺失则补充添加,已存在的需核对包名、SHA值与对应环境完全一致

2. 更新Firebase配置并清理缓存

  • 登录Firebase控制台,重新下载google-services.json文件
  • 替换安卓项目app目录下的旧配置文件
  • 执行命令清理项目缓存并重新构建:
    flutter clean
    flutter pub get
    

3. 确认Play应用签名密钥状态

  • 进入Google Play Console的应用签名页面,核对显示的SHA1/SHA256与你添加到Firebase的完全一致
  • 若启用了应用签名密钥轮换,需将新生成的轮换SHA密钥同步添加至Firebase和Google Cloud

4. 适配设备Google Play服务版本

  • 部分旧设备的Google Play服务版本过低会触发登录失败,可在应用中添加版本检测逻辑:
    import 'package:google_api_availability/google_api_availability.dart';
    
    Future<void> checkPlayServicesStatus() async {
      final status = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability();
      if (status != GooglePlayServicesAvailability.success) {
        // 提示用户更新Google Play服务
      }
    }
    

5. 检查OAuth同意屏幕配置

  • 确保Google Cloud控制台的OAuth同意屏幕已完成发布(针对外部用户),且应用名称、隐私政策链接等信息完整
  • 若处于测试状态,仅添加的测试用户可正常登录,非测试用户会触发失败

内容的提问来源于stack exchange,提问作者Seyyid ÇIRAK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:20:56