如何使用 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(() => {
...
});
我可以轻松地使用它来创建用户:
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(() => {
...
});