Android集成Firebase谷歌登录遇ApiException 10错误求助
兄弟,这个com.google.android.gms.common.api.ApiException: 10我太熟了——本质就是身份验证配置不匹配,你虽然做了不少尝试,但大概率是某个细节环节没抠到位,咱们一步步排查:
先把SHA指纹的准确性焊死
别信手动复制的指纹,直接用命令行生成最靠谱,打开终端跑这个命令(debug密钥库的默认参数,如果你改了密钥库密码要对应调整):keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
重点注意:debug和release密钥库是完全分开的!你现在测的是debug包,就必须把debug密钥的SHA1、SHA256都加到Firebase控制台;如果是release包,得换release密钥的指纹,别搞混。另外,仔细核对指纹的每一个字符,比如别把数字0写成字母O,很多人栽在这。别搞混OAuth客户端ID的类型
你提到用了WebClient ID,但Android端的谷歌登录,必须用Android类型的客户端ID,不是Web的!去Google Cloud Console(和Firebase控制台是关联的)的「API和服务→凭据」里,找到对应项目下的Android客户端ID,确保它的包名和你app的包名完全一致(大小写都不能错),然后把这个ID配置到你的Android项目里(比如strings.xml对应的字段)。重新下载并替换Firebase配置文件
只要你修改过SHA指纹或者客户端ID,就必须重新下载google-services.json文件,替换掉app模块根目录下的旧文件!替换完记得clean项目(Build→Clean Project)再重新编译,避免缓存导致的旧配置残留。确认Google Sign-In API已启用
去Google Cloud Console的「API和服务→库」,搜索「Google Sign-In API」,确保它是启用状态。虽然Firebase启用登录后一般会自动开启,但有时候会有延迟或者漏开的情况,手动确认下更稳妥。排查测试环境的小坑
如果用模拟器,确保模拟器的Google Play服务是最新版;真机的话也检查下Google Play服务是否更新。另外,测试时尽量关掉VPN或代理,这些工具可能会干扰身份验证请求。
内容的提问来源于stack exchange,提问作者Dhruv Kaushal

