如何使用 AngularFire2 在 Firebase 中更新用户?

How do you update a user in Firebase using AngularFire2?

我可以轻松地使用它来创建用户:

this.af.auth.createUser({email: email, password: password});

但是如何在创建用户详细信息后对其进行编辑? (即:更改密码或电子邮件地址?)。我会这样想:

this.af.auth.updateUser({email: email, password: password});

但是没有updateUser方法?

我曾经遇到过这个问题,但还没有得到angularfire2的答案。

这是我解决这个问题的本机 firebase 方法。

public auth: any;
constructor(@Inject(FirebaseApp) firebaseApp: any) {
  this.auth = firebaseApp.auth();
}

reset(targetEmail: any) {
  this.auth.sendPasswordResetEmail(targetEmail);
}

注:

好像不能直接修改密码,只能发一个密码重置eamil到目标邮箱。

使用 AngularFire2,您只需在路径中添加 "currentUser"。

this.af.auth.currentUser.updateEmail(email)
.then(() => {
  ...
});

您还需要在调用此之前重新验证登录,因为 Firebase 需要重新验证才能执行某些帐户功能,例如删除帐户、更改电子邮件或密码。

对于我刚刚实施的项目,我只是将登录作为更改 password/email 表单的一部分,然后在 "updateEmail" 调用之前调用 "signInWithEmailAndPassword"。

要更新密码,只需执行以下操作:

this.af.auth.currentUser.updatePassword(password)
.then(() => {
  ...
});