我想升级我的注册方法,以便在注册后立即记录用户。但是下面的方法不起作用,因为我在firebase注册之前调用了loginUser()。如何重建我的registerUser()以等待用户在服务器中存在?
export class AuthService {
token: string;
constructor(
private router: Router,
public afAuth: AngularFireAuth,
) {}
registerUser(email: string, password: string) {
this.afAuth.auth.createUserWithEmailAndPassword(email, password)
.then(
() => {
this.loginUser(email, password);
this.router.navigate(['/login']);
}
)
.catch(
error => {
console.log(error);
});
}
答案 0 :(得分:0)
使用可观察的createUserWithEmailAndPassword
,而不是使用this.afAuth.authstate
的结果。一旦用户登录,就会更新该observable,因此您可以将登录后的功能放在那里。它可能看起来像这样:
this.afAuth.authstate.subscribe(user=> {
if (user) {
//this means the user has logged in
this.loginUser(email, password);
this.router.navigate(['/login']);
}