Flutter Android端Google登录报错ApiException:10,求排查其他原因
包名修改的影响
包名修改肯定会影响,Firebase、Google Cloud Console中配置的应用包名必须和项目里的完全一致(包括大小写),哪怕存在字符差异都会导致身份验证失败。
其他排查方向
核对Google Cloud Console的OAuth 2.0客户端ID
除Firebase后台外,需直接进入Google Cloud Console对应项目,确认Android客户端ID的包名、SHA-1/SHA-256与项目完全匹配;若使用firebase_auth实现登录,需确保已创建Web客户端ID,并在Flutter代码中正确配置对应的clientId。区分签名证书环境
./gradlew signingReport获取的是debug环境签名信息,若测试release包,必须将release版的SHA-1/SHA-256也添加到Firebase和Cloud Console;同时检查android/app/build.gradle中debug、release的签名配置是否正确,避免证书混用。校验google-services.json
确保文件放在android/app/目录下,打开文件核对:client[0].client_info.android_client_info.package_name与当前自定义包名一致client[0].oauth_client[0].client_id与Cloud Console中的Android客户端ID匹配
检查依赖与配置兼容性
确认pubspec.yaml中firebase_auth、google_sign_in使用稳定兼容版本;检查Android项目级build.gradle中Google服务插件版本(如classpath 'com.google.gms:google-services:4.3.15')与Firebase依赖版本匹配。设备与网络环境验证
测试设备需安装最新版Google Play服务,模拟器需选用带Google Play的系统镜像;确保设备可正常访问Google服务,避免使用代理或受限网络。代码配置检查
确认GoogleSignIn初始化时的clientId(若指定)与Cloud Console中的客户端ID一致;检查Firebase.initializeApp()在应用启动时已正确执行,无初始化失败情况。
内容的提问来源于stack exchange,提问作者splurring

