Android端集成Firebase实现Google Sign In功能持续失败如何解决
你遇到的报错Requests from this Android client application ch.workouttracker are blocked是Firebase后台拦截了你的应用请求导致,优先排查以下配置:
- 核对Firebase控制台安卓应用配置:确保后台填写的包名和项目
build.gradle中配置的applicationId完全一致,若你为debug构建配置了单独的包名后缀,需在Firebase后台新增对应包名的应用配置。 - 核对SHA1指纹:除了release签名的SHA1,需额外将debug默认签名的SHA1上传到Firebase后台,可通过以下命令获取本地debug签名指纹:
# Mac/Linux keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android # Windows keytool -list -v -keystore C:\Users\你的用户名\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android - 检查应用检查配置:如果Firebase控制台「应用检查」功能已开启,且未为安卓端配置Play完整性/SafetyNet验证规则,所有请求都会被默认拦截,测试阶段可临时关闭应用检查,正式发布前再完成对应配置即可。
- 验证google-services.json有效性:每次修改Firebase后台的包名、SHA1配置后,都要重新下载最新的
google-services.json文件替换到项目app模块根目录,随后执行清理构建操作(Android Studio点击Build - Clean Project再Rebuild Project),避免旧配置缓存导致请求被拒。 - 检查Google Cloud控制台API限制:进入Firebase项目绑定的Google Cloud控制台,在「API和服务」-「已启用的API和服务」中确认Identity Toolkit API、Google Sign-In API已启用;在「凭据」页面核对安卓端OAuth 2.0客户端ID的包名、SHA1配置完全匹配,未设置额外的访问限制。
- 检查授权网域配置:进入Firebase控制台「身份验证」-「设置」-「已授权的网域」,确保本地测试相关的域名已加入列表,部分场景下Google Sign In的回调会触发域名校验拦截。
90%以上同类问题都是因为debug包的SHA1未上传、开启了应用检查未配置、包名不匹配、使用旧的google-services.json这四个原因导致,按顺序排查基本可以解决问题。
内容的提问来源于stack exchange,提问作者Christian Bohli
相关产品推荐
相关产品推荐

