这是signIn
方法,虽然尚不完善,但直到我进行了一些重构(现在警卫人员返回Observable
)后它才起作用:
public signInWithGooglePopup(): any {
this.firebaseAuthService.setMediaProvider(new auth.GoogleAuthProvider());
this.firebaseAuthService.signInWithPopup()
.pipe
(
tap(() => this.router.navigate(['home'])),
map(userCredential => new FirebaseUser().deserialize(userCredential.user)),
switchMap(firebaseUser => this.firebaseUserService.update(firebaseUser))
).subscribe();
}
似乎在那段重构之后,导航就变成了狗...我不知道为什么。
单击我的Sign In
按钮后,即使我可以通过在地址栏中键入其URL来访问主页(应该导航至该主页),该URL仍保持不变。那是导航不起作用。我在做什么错了?
编辑:
这是身份验证保护内部的逻辑:
return this.firebaseAuthService.isSignedIn().pipe(
map(
isLoggedIn => {
if (isLoggedIn) {
return true;
} else {
this.router.navigate(['sign-in']);
return false;
}
}
)
);