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
相关产品推荐
相关产品推荐

