【问题标题】:How to remove Phone Number from user account in firebase?如何从firebase中的用户帐户中删除电话号码?
【发布时间】:2018-01-23 15:49:32
【问题描述】:

我猜你必须通过重新验证来删除电话号码,因为目前我正在尝试这样做:

const user = firebase.auth().currentUser;

user.updateProfile({phoneNumber: null}).then(() => { alert('success') }).catch(err => {alert(err)})

这不起作用,但我得到了成功

【问题讨论】:

    标签: firebase firebase-authentication


    【解决方案1】:

    要删除用户的电话号码帐户,只需 unlink 它:

    firebase.auth().currentUser.unlink(firebase.auth.PhoneAuthProvider.PROVIDER_ID);

    【讨论】:

    • 我们如何获取Provider id?
    • 什么意思?它是一个常数:firebase.auth.PhoneAuthProvider.PROVIDER_ID
    • 我忘记删除评论了哈哈,我2分钟后才发现,对不起。 Firebase 的新手
    【解决方案2】:

    the documentation所述:

    您可以更新用户的基本个人资料信息——用户的显示 姓名和头像 URL — 使用 updateProfile 方法。

    这意味着您只能更新用户的显示名称和个人资料照片。还有updateEmail 方法可用于更新用户的电子邮件。但是没有办法更新手机。

    【讨论】:

    • 有一个 updatePhoneNumber 方法是我用来将电话号码添加到帐户的方法,但它需要一个 phoneCredential 我相信它只需要一个有效号码,所以我不知道如何通过 this 传递一个空值。
    • 或者,如果您希望更新数据库中的这个电话号码,您可以使用 Firebase Auth CLI 并将您的数据导出到 JSON 文件,删除该号码并将其重新导入。
    • 我不确定如何在 Web 应用程序上实现它
    • 你没有在你的应用程序中实现它。您需要在您的计算机上安装Firebase CLI 并使用我提供的链接中的命令。
    • 这需要在应用程序中,因为它是应用程序的一部分
    【解决方案3】:

    如果有人从 Admin SDK 的角度寻找这个问题的答案,您只需将 UserRecord 上的 phoneNumber 字段设置为 null。

    admin.auth().updateUser( user.uid, { phoneNumber: null } )

    【讨论】:

    • 此方法需要 Cloud Functions,价格昂贵 :)
    • 我的身份验证从 phoneNumber 开始,我相信其他人也有/将会有,所以我将解释在为银行等验证电子邮件后我必须做些什么来取消电子邮件(似乎是非官方的 firebase-php做同样的事情)。设置电子邮件: var user = firebase.auth().currentUser; user.updateEmail(this.state.newEmail).then(() => {user.sendEmailVerification().then(()=>{});})。清除电子邮件(在 firebase 函数中): admin.auth().deleteUser(userId).then(() => {admin.auth().createUser({uid: userId,phoneNumber: phone}).then(() = > {})})。尽量让它令人厌烦,以免用户滥用它
    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多