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

Firebase Auth signInWithPhoneNumber接口调用返回400错误求助

排查Firebase手机号认证400错误的常见方案

我来帮你梳理这个Firebase手机号认证返回400错误的问题,这类错误基本都是请求配置或参数不符合要求导致的,咱们一步步排查:

1. 确认Firebase控制台的核心配置

  • 启用手机号登录方式:打开Firebase控制台,进入你的项目→Authentication→Sign-in method,找到「Phone」选项,确保它处于启用状态。
  • 添加应用身份标识:
    • 对于Android:别忘了在Firebase控制台的项目设置里,添加你的应用的SHA-1和SHA-256签名(可通过keytool命令从签名文件中获取),缺失这一步会直接导致手机号认证请求被拒绝。
    • 对于iOS:确认已添加正确的Bundle ID,若需要静默验证,还要确保启用了Apple推送通知服务(APNs)。

2. 检查请求的手机号格式

signInWithPhoneNumber接口要求手机号必须是E.164标准格式,也就是带国家码的完整号码,比如:

  • 中国手机号:+86138xxxxxxx
  • 美国手机号:+1202xxxxxxx
    绝对不能使用不带国家码、带空格/括号/横杠的格式(比如138xxxxxxx或(120)2xxxxxxx),格式错误是触发400的高频原因。

3. 验证Firebase初始化配置的准确性

你的初始化代码里apiKey字段是空的(应该是打码处理),要确保所有配置参数和Firebase控制台「添加应用」时给出的完全一致:

firebase.initializeApp({ 
  apiKey: "你的正确API Key", 
  authDomain: "xxx.firebaseapp.com", 
  databaseURL: "https://xxx.firebaseio.com", 
  projectId: "你的项目ID", 
  storageBucket: "xxx.appspot.com", 
  messagingSenderId: "你的Sender ID" 
}); 

如果apiKey不正确或者其他参数不匹配,请求会直接被Google的身份工具包API拒绝。

4. 检查API密钥的访问限制

登录和Firebase项目关联的Google Cloud控制台,找到「API和服务」→「凭据」,定位你使用的Firebase API密钥:

  • 避免设置过于严格的限制(比如仅允许特定域名/IP访问),React Native应用应该允许该API密钥用于移动应用(可通过添加应用包名和SHA-1来做合理限制,而非完全禁止)。
  • 确认「Identity Toolkit API」已启用(通常Firebase会自动启用,但可以手动检查确认)。

5. 核对依赖版本兼容性

你使用的是react-native-firebase-starter模板,要确保@react-native-firebase/auth等依赖的版本和模板兼容,版本不匹配也可能导致请求格式错误。可以尝试更新到最新稳定版本,或者查看模板的README确认推荐的依赖版本。

结合你提供的日志,Volley返回400错误说明是请求本身不符合API要求,按照上面的步骤逐一排查,应该能找到问题所在。如果排查后还是有问题,可以提供更详细的信息(比如完整的手机号格式、Firebase控制台的配置截图等),我再帮你进一步分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:27:30