Flutter应用上线Google Play后正式用户触发Firebase请求拦截报错如何解决
Firebase 手机号认证线上用户设备拦截问题解决思路
We have blocked all requests from this device due to unusual activity
- 首先校验Firebase控制台的签名指纹配置:上线后Google Play会对应用进行自动重签,你需要将Google Play控制台「应用完整性」页面下的「应用签名密钥证书」对应的SHA-1、SHA-256值,全部添加到Firebase项目设置的「SHA证书指纹」列表中,修改后需要重新下载
google-services.json打包更新应用,该问题是正式上线后触发该报错的最高概率原因。 - 检查Safety Net与reCAPTCHA配置:Firebase手机号认证依赖设备验证机制降低风控风险,你需要确认安卓端已正确集成Safety Net服务,且在Firebase控制台Auth设置页开启了Safety Net验证;若未配置Safety Net,未知设备的认证请求会直接触发reCAPTCHA校验,若用户设备无法完成reCAPTCHA验证就会触发该拦截错误。
- 增加请求频率限制逻辑:在代码中新增前置校验规则,限制单个设备/单个手机号1小时内最多发起3次验证码请求,从业务侧避免短时间高频请求触发谷歌风控;同时捕获
FirebaseAuthException异常,当错误码为too-many-requests时,明确提示用户24小时后再尝试,避免用户反复重试加重拦截状态。 - 清理测试阶段临时配置:确认Firebase Auth设置中的测试手机号、测试验证码白名单已全部清理,测试阶段遗留的临时配置会导致正式环境的风控规则判定异常,升高误判概率。
- 排查恶意请求特征:在Firebase控制台Auth的使用统计页查看验证码请求的来源IP、归属地分布,确认是否存在集中的恶意刷取请求,若存在可通过Cloud Function新增IP/手机号黑名单规则,拦截异常请求避免整体风控阈值被拉高。
内容的提问来源于stack exchange,提问作者Nuwan Thisara
相关产品推荐
相关产品推荐

