安卓端Firebase短信验证报错17093,已配置SHA签名如何解决
错误17093解决方案(已排除SHA配置错误场景)
首先明确:Firebase Auth返回SMS verification code request failed: unknown status code: 17093 null排除SHA签名配置错误的前提下,按以下优先级排查解决:
- 检查短信配额消耗
Firebase默认每个项目每日免费短信配额为50条,测试阶段反复发送验证码很容易耗尽配额,你此前成功注册5个用户后触发报错大概率符合该场景。可前往Firebase控制台→身份验证→使用情况页面查看当前配额消耗情况,测试阶段可申请临时配额提升,正式上线后申请商用配额即可。 - 校验手机号格式
确认传入verifyPhoneNumber方法的手机号严格符合E.164标准格式,必须带国家码前缀(例如中国手机号为+8613xxxxxxxxx),不可直接传入11位纯数字,格式错误会触发该错误码。建议在代码中新增手机号格式校验逻辑,确保传给sendVerificationCode的参数合法。 - 排查反作弊拦截限制
同一设备、同一IP、同一手机号短时间内多次请求发送验证码,会被Firebase的反作弊策略判定为异常操作直接拦截。此类情况可等待24小时后重试,或更换测试设备、测试手机号验证。测试阶段建议使用Firebase的测试手机号功能:在控制台→身份验证→测试电话号码中添加预设的测试手机号和固定验证码,既不会消耗短信配额也不会触发拦截规则。 - 检查应用验证配置
新版Firebase Auth默认开启SafetyNet应用验证,若未在控制台开启对应配置也会触发该错误。前往Firebase控制台→项目设置→应用验证,勾选启用应用验证即可解决。 - 升级Google Play服务
测试设备的Google Play服务版本过低或运行异常,会导致短信验证流程中断,将测试设备的Google Play服务更新至最新版本后重试即可。
代码优化建议
你当前代码在onStart生命周期中直接调用sendVerificationCode方法,每次页面重启都会触发验证码重发,极易消耗配额和触发拦截,建议新增布尔标记位,仅在首次进入页面时调用发送验证码逻辑。
内容的提问来源于stack exchange,提问作者Japhet Mesa
相关产品推荐
相关产品推荐

