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

Angular Firebase:禁用手机号认证时无需验证更新用户手机号

把手机号存到数据库而非Firebase Auth字段

Firebase Auth的phoneNumber是绑定认证的字段,updatePhoneNumber方法必须通过手机号验证才能修改——这就是你报错的原因,你禁用了手机号登录方式,没法走这个验证流程。

如果只是要存个手机号当用户资料(不用来认证),别用Auth的这个字段,直接存在Firestore或者实时数据库里就行,完全不需要验证,无效号码也能存。

示例代码(Firestore版)

const userId = firebase.auth().currentUser.uid;
const userDoc = firebase.firestore().collection('users').doc(userId);

try {
  await userDoc.update({ phoneNumber: phone });
  console.log("手机号更新完成");
} catch (err) {
  console.error("更新出错:", err);
}

原代码失败的原因

你之前用的PhoneAuthProvider.verifyPhoneNumber和updatePhoneNumber都是手机号认证流程里的方法,必须在Firebase控制台开启手机号登录才能用,所以才会报auth/operation-not-allowed错误。你的场景根本不需要这套认证逻辑。

额外提示

之后要读取手机号的话,直接从数据库里取就行,和Auth用户信息分开管理,更贴合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:58:14