У меня есть простое приложение, подключенное к firebase. При входе в систему я просто хочу перенаправить пользователя на страницу своего профиля. Однако по какой-то нечетной причине перенаправление не происходит.Угловой 2.0 Router.navigate не перенаправляется после входа в систему
У меня есть here, который похож на аналогичную проблему, но, к сожалению, там нет решения.
Изменение перенаправления на другую страницу (у которой нет охранника), похоже, работает, поэтому я думаю, проблема в том, что я просто не знаю, как ее исправить.
Вот мой код, когда пользователь подписывается в нем вызывает мое обслуживание:
onLogin() {
this.authService.signinUser(this.loginForm.value);
}
И мой auth.service.ts
:
public signinUser(user: User) {
firebase.auth().signInWithEmailAndPassword(user.email, user.password)
.catch(function (error) {
// Handle Errors here.
let errorCode = error.code;
let errorMessage = error.message;
// todo
console.log(errorCode);
console.log(errorMessage);
});
this.router.navigate(['/profile']); //not working
//this.router.navigate(['/']); //working
}
Вот мой app.routing.ts
const APP_ROUTES: Routes = [
{ path: '', component: HomeComponent },
{ path: 'login', component: LoginComponent },
{ path: 'signup', component: SignupComponent },
{ path: 'profile', component: ProfileComponent, canActivate: [AuthGuard] },
];
export const routing = RouterModule.forRoot(APP_ROUTES);
И здесь является моим auth.guard.ts
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private authService: AuthService) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
return this.authService.isAuthenticated().first();
}
}
Полный проект находится на github, если вам нужно проверить другую конфигурацию.
есть ли у вас какие-либо ошибки на консоли? – Sefa
@ SefaÜmitOray абсолютно ничего, консоль все чистая. Единственное немного странное, что если я повторно нажму кнопку «войти», он перенаправляется, но только при второй попытке – gudthing
@ SefaÜmitOray. Что это значит, когда вы вошли в систему? 'canActivate (маршрут: ActivatedRouteSnapshot, state: RouterStateSnapshot): Наблюдается | boolean { return this.authService.isAuthenticated(). first(); } ' –