使用苏丹手机号触发Firebase Auth短信验证错误17499求助
Firebase Auth短信验证报错(状态码17499/错误码39):苏丹手机号无法接收验证码
报错日志
E/FirebaseAuth(21984): [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17499 Error code:39 I/flutter (21984): [firebase_auth/unknown] null
问题背景
使用苏丹手机号时触发上述异常,其他国家手机号可正常接收短信验证码。已完成以下配置:
- 在Firebase控制台启用了电话登录方式;
- 在Firebase控制台添加了Google Play控制台、签名报告及密钥库的SHA1和SHA256,并更新了google-services.json;
- 在Google Cloud控制台为项目启用了Android DeviceCheck API;
- 在App Check中启用了Play Integrity。
解决方案
- 切换手动短信验证模式:部分地区因合规限制不支持自动短信检索(SmsRetriever)服务,可跳过SmsRetriever流程,直接引导用户手动输入收到的验证码,绕开当前报错环节。
- 检查短信模板合规性:苏丹当地运营商对短信内容可能有特殊要求,确保验证短信包含与Firebase控制台一致的应用名称,避免使用敏感或违规表述。
- 排查地区配额限制:登录Google Cloud控制台,查看Firebase Auth的短信发送配额是否在苏丹地区被限制,若配额不足可提交申请提升。
- 验证手机号格式:确认苏丹手机号以
+249开头,无多余前缀或错误数字,格式错误会导致短信路由失败。 - 临时测试App Check配置:部分地区的Play Integrity验证可能存在兼容性问题,可临时关闭App Check的Play Integrity验证,测试是否能正常发送短信;若恢复正常,再逐步排查配置细节。
- 提交Firebase工单:若上述方案无效,直接向Firebase支持提交工单,提供报错日志、地区信息及已完成的配置,请求排查地区性服务限制或运营商对接问题。
内容的提问来源于stack exchange,提问作者wiam
相关产品推荐
相关产品推荐

