如何在firebase auth中更改电子邮件?

CEN*_*EDE 19 javascript firebase firebase-authentication

我正在尝试使用以下方法更改/更新用户的电子邮件地址:

firebase.auth().changeEmail({oldEmail, newEmail, password}, cb)
Run Code Online (Sandbox Code Playgroud)

但是我得到了...... changeEmail不是函数错误.我从旧的firebase文档中找到了这里的引用.

那么如何在3.x版本中实现呢?因为我无法在新文档中找到参考.

Fra*_*len 33

您正在寻找对象updateEmail()上的方法firebase.User:https://firebase.google.com/docs/reference/js/firebase.User#updateEmail

由于这是在用户对象上,因此您的用户必须已登录.因此它只需要密码.

用法简单:

firebase.auth()
    .signInWithEmailAndPassword('you@domain.com', 'correcthorsebatterystaple')
    .then(function(userCredential) {
        userCredential.user.updateEmail('newyou@domain.com')
    })
Run Code Online (Sandbox Code Playgroud)

  • 我明白了,但我也在这里找到了答案:D https://firebase.google.com/docs/auth/web/manage-users#set_a_users_email_address (2认同)

Rob*_*uch 19

如果有人正在寻找通过Firebase Admin更新用户的电子邮件,它会记录在此处并且可以通过以下方式执行:

admin.auth().updateUser(uid, {
  email: "modifiedUser@example.com"
});
Run Code Online (Sandbox Code Playgroud)

  • 这会在整个身份验证服务中完全更新它吗?我担心使用管理 SDK 更改某人的电子邮件,并且此更改未在身份验证服务中完全传播。 (2认同)

Joh*_*ler 11

对于 FIREBASE V9(模块化)用户:

接受的答案不适用于您。相反,您可以执行此操作,即像{ updateEmail }任何其他导入一样导入和使用它。以下代码直接从https://firebase.google.com/docs/auth/web/manage-users的 Facebook 文档复制/粘贴

快乐编码!

import { getAuth, updateEmail } from "firebase/auth";
const auth = getAuth();
updateEmail(auth.currentUser, "user@example.com").then(() => {
  // Email updated!
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});
Run Code Online (Sandbox Code Playgroud)