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

Firebase手机号验证API调用遇TOO_MANY_ATTEMPTS_TRY_LATER错误求助

Firebase Phone Auth 持续触发TOO_MANY_ATTEMPTS_TRY_LATER错误的解决方案

针对你调用Firebase手机号验证API时持续出现TOO_MANY_ATTEMPTS_TRY_LATER错误的问题,以下是几个排查和解决方向:

1. 手机号被长期临时封禁

Firebase的手机号验证系统会对短时间内频繁请求的手机号施加超出1小时的封禁限制。

  • 先更换一个测试手机号发起请求,确认是否仅当前手机号受影响
  • 如果是正式用户的手机号,可通过Firebase控制台提交解封申请:进入认证 → 手机号认证页面查看封禁列表,或直接联系Firebase支持团队申诉

2. 请求参数及身份验证错误

你的请求中存在重复使用API Key的问题:

  • sendVerificationCode接口仅需要在URL参数中携带API Key,无需在Authorization头中重复传入(该头用于OAuth令牌验证场景,不适用此接口)
  • 建议用json_encode生成请求体,避免手动转义JSON字符串的错误

修正后的cURL代码:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://identitytoolkit.googleapis.com/v1/accounts:sendVerificationCode?key=AIzaSyAqQlhpjv86*********-*************',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    "phoneNumber" => "+9199*******0"
  ]),
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

3. 客户端ID或App Check限制

如果你的项目配置了客户端ID白名单或启用了App Check,可能导致请求被拦截:

  • 检查Firebase控制台认证 → 设置中的授权客户端ID列表,确认你使用的x-goog-client-id已被授权
  • 若无需客户端ID验证,可直接移除x-goog-client-id请求头(该参数并非sendVerificationCode接口的必填项)

4. 服务器IP被限制

若你的服务器IP在短时间内发送了大量请求,可能被Firebase的IP封禁机制拦截:

  • 尝试切换服务器IP后重新发起请求
  • 检查代码逻辑,避免存在循环调用API的错误逻辑,防止持续触发限制

内容的提问来源于stack exchange,提问作者Ishant Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:25:01