You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Auth短信验证码请求失败(错误码17499、39)求助

Firebase短信认证错误码17499&39排查方案

错误码含义

  • 错误码17499:Firebase内部服务级错误,触发原因包括后端请求超时、短信配额耗尽、区域服务故障,或客户端请求格式不符合要求。
  • 错误码39:客户端侧认证流程异常,常见于设备Google Play服务版本过低、应用签名配置缺失、设备无法正常连接Firebase服务等场景。

排查步骤

1. Firebase控制台配置校验

  • 确认Phone sign-in认证方式已在Firebase控制台的Authentication -> Sign-in method中启用。
  • 检查短信配额:进入Firebase控制台的Usage and Billing -> Quotas,查看Auth服务的短信发送配额是否已用尽。
  • 补全应用签名指纹:在Firebase控制台的项目设置 -> 应用 -> Android应用中,添加debug和release版本的SHA-1、SHA-256指纹,缺失签名会导致认证请求被拦截。

2. Android客户端配置补全

  • 更新Google Play服务:确保测试设备上的Google Play Services为最新版本,旧版本会导致Firebase Auth接口调用失败。
  • 完善Manifest权限:除基础网络权限外,需添加以下权限:
    <uses-permission android:name="com.google.android.gms.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
    同时确认SMS Retriever API对应的广播接收器已正确配置在Manifest中。
  • 验证Firebase初始化:确保Flutter项目中已正确初始化firebase_core,应用启动时调用Firebase.initializeApp()。

3. 服务状态与区域检查

  • 查看Firebase官方状态页面,确认所在区域的Auth服务无故障。
  • 测试跨区域设备:若怀疑区域限制,更换其他区域的真实设备测试,或检查项目的Firebase区域设置是否支持短信服务。

4. 额外验证点

  • 使用真实设备测试:Android模拟器可能存在Google服务或短信接收的兼容性问题,优先用真实设备验证。
  • 检查电话号码格式:调用verifyPhoneNumber时需使用带国际区号的完整号码(如+8613xxxxxxxxx),格式错误会触发请求失败。
  • 查看Auth日志:在Firebase控制台的Authentication -> Logs中查看具体错误详情,日志会提供比客户端错误码更具体的失败原因。

内容的提问来源于stack exchange,提问作者Ziyad godil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:13:27