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

Firebase手机号认证仅测试手机号可收到OTP验证码问题求助

解决方案

签名配置校验

  • 确认Firebase后台配置的SHA1/SHA256与当前打包使用的签名文件哈希值一致,避免误填debug签名哈希后用release包测试的情况
  • 若你使用Google Play App Signing分发应用,需要将Google Play后台「应用完整性」页面展示的SHA1/SHA256也添加到Firebase控制台,仅配置本地签名哈希无效
  • 修改完签名配置后,重新下载google-services.json替换项目内的旧文件,重新编译打包后再测试

服务权限与配额校验

  • 检查Firebase Phone Auth的短信发送配额,免费版默认额度有限,超额后仅测试手机号可正常走流程,真实手机号不会下发验证码
  • 进入Firebase控制台「Authentication - 设置 - 手机号」页面,确认目标测试手机号的归属国家/地区在允许发送的列表内
  • 部分地区使用Phone Auth发送真实短信需要先绑定支付信息,确认你的Firebase项目没有因为未完善账单信息被限制服务

代码与运行环境排查

  • 你当前的代码仅在onVerificationFailed回调中打印错误日志,没有对外提示,建议补充错误输出逻辑,直接获取Firebase返回的具体报错原因:
@Override
public void onVerificationFailed(@NonNull FirebaseException e) {
    Log.d("error", e.getMessage());
    pd.dismiss();
    Toast.makeText(RegisterActivity.this, "验证失败:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
  • 打印mFullTelephoneNumber的日志,确认拼接的手机号格式正确,国家码+手机号的组合没有多余空格、特殊字符
  • 测试时不要使用模拟器、代理或VPN网络,异常网络环境会被Firebase判定为风险,拦截真实验证码下发

reCAPTCHA配置校验

  • Firebase Phone Auth在DeviceCheck校验失败时会自动触发reCAPTCHA验证,确认AndroidManifest.xml已经配置了android.permission.INTERNET权限,没有拦截WebView弹窗
  • 若应用targetSdkVersion >= 34,需要确认已配置WebView相关的隐私权限,避免reCAPTCHA加载失败导致验证流程中断

内容的提问来源于stack exchange,提问作者Prasin Prathap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:36:03