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

使用Firebase Admin REST API创建用户后lookup查询未返回手机号的问题

问题分析与解决方法

核心原因

你使用的accounts/signUp接口是面向邮箱/密码登录流程的,虽然允许传入phoneNumber字段,但这个字段只会被当作未验证的用户属性存储,Firebase Authentication默认不会在lookup查询中返回未验证的手机号。另外,该接口不会自动触发手机号验证流程,所以即使传入了手机号,它也不会被标记为已验证状态。

解决步骤

  • 正确创建带手机号的用户(推荐用Admin API)
    放弃用signUp接口,改用Firebase Admin REST API的accounts:create端点创建用户,这个接口支持直接设置手机号,还可以标记为已验证(如果你已经通过其他方式验证过用户手机号)。请求示例:

    {
      "email": "user@example.com",
      "password": "12345",
      "phoneNumber": "+15555555555",
      "displayName": "user1",
      "phoneNumberVerified": true
    }
    

    用这个方式创建的用户,lookup查询会直接返回phoneNumber字段。

  • 修复已创建的用户
    如果已经用signUp创建了用户,需要两步操作:

    1. 调用accounts:update接口,传入用户的idToken和phoneNumber,触发手机号验证流程,让用户完成短信验证;
    2. 验证完成后,手机号会被标记为已验证,此时再执行lookup就能返回该字段。
      或者,如果你有管理员权限,直接用Admin API的accounts:update端点(无需用户参与)将phoneNumberVerified设为true,这样也能让lookup返回手机号。

额外注意

lookup接口返回的字段依赖于用户属性的验证状态,未验证的手机号、邮箱等敏感字段默认不会被返回,这是Firebase的安全策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:57:15