По моему Authservice
, у меня есть:
getAuthenticationState(): Observable<any> {
return this.angularFireAuth.authState;
}
А по моему Guard
:
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
// In case of refresh
return this.authService.getAuthenticationState()
.pipe(map(user => !!user))
.pipe(tap(loggedIn => {
console.log(loggedIn);
if (!loggedIn) {
this.router.navigate(['/admin/login']);
} else {
return true;
}
}));
}
Моя проблема в том, что я должен нажать кнопку входа в систему дважды (я уверен, что она реализована так, как должна), кажется, что Guard не работает как Observable, loggedIn значение печатается только один раз.