如何在Firebase身份验证中更改电子邮件?
如何在Firebase身份验证中更改电子邮件?
我正在尝试使用以下代码更改/更新用户的电子邮件地址:
firebase.auth().changeEmail({oldEmail, newEmail, password}, cb)
但是我遇到了...changeEmail不是一个函数的错误。我在旧的firebase文档中找到了这里的参考信息。
那么在3.x版本中该如何操作呢?因为在新文档中我找不到相关的参考。
问题的原因是在Firebase V9版本中,导入了updateEmail
方法,但是导入的方法不适用于之前版本的Firebase。解决方法是按照下面的代码,导入updateEmail
方法并使用它来更新邮箱地址。需要注意的是,在使用这段代码之前,需要重新登录Firebase用户,以获取最新的登录令牌。
import { getAuth, updateEmail } from "firebase/auth"; const auth = getAuth(); updateEmail(auth.currentUser, "user.com").then(() => { // 邮箱地址已更新! // ... }).catch((error) => { // 发生错误 // ... });
感谢,这段代码有效。如果其他人尝试这段代码,请不要忘记重新登录Firebase用户(Firebase需要最近的登录令牌),然后才能更改邮箱地址。
问题的原因是用户想要在Firebase身份验证中更改电子邮件地址。解决方法是使用Firebase用户对象上的updateEmail()方法来更新电子邮件地址。用户需要先登录,然后使用正确的密码调用signInWithEmailAndPassword()方法进行身份验证。然后,使用updateEmail()方法将新的电子邮件地址作为参数传递给user对象。下面是示例代码:
firebase.auth() .signInWithEmailAndPassword('you.example', 'correcthorsebatterystaple') .then(function(userCredential) { userCredential.user.updateEmail('newyou.example') })
另外,有其他用户在参考文档中找到了答案,并分享了链接,这也是一种解决方法。