Ich habe eine einfache Anwendung an Firebase angeschlossen. Bei der Anmeldung möchte ich den Nutzer einfach auf seine Profilseite umleiten. Aus irgendeinem seltsamen Grund findet die Umleitung jedoch nicht statt.Angular 2.0 Router.Navigate nicht Umleiten nach dem Login
Ich habe Look here das klingt wie ein ähnliches Problem, aber leider keine Lösung dort.
Ändern der Umleitung zu einer anderen Seite (eine, die keine Auth Guard hat) scheint zu arbeiten, also denke ich, das Problem ist da, ich weiß nur nicht, wie es zu beheben ist.
Hier ist mein Code, sobald sich der Benutzer in sie meinen Dienst ruft:
onLogin() {
this.authService.signinUser(this.loginForm.value);
}
Und mein 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
}
Hier ist meine 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);
Und hier ist mein auth.guard.ts
Das vollständige Projekt ist auf github, falls Sie eine andere Konfiguration überprüfen müssen.
erhalten Sie einen Fehler auf der Konsole? – Sefa
@ SefaÜmitOray absolut nichts, Konsole ist alles sauber. Das einzige etwas Seltsame ist, dass wenn ich wieder auf den "Anmelden" -Button klicke, es umleiten wird, aber nur beim zweiten Versuch. – gudthing
@ SefaÜmitOray Was gibt das zurück, wenn Sie eingeloggt sind? 'canActivate (Route: ActivatedRouteSnapshot, Status: RouterStateSnapshot): Observable | boolean { Rückgabe this.authService.isAuthenticated(). first(); } ' –