2

Ich verwende ionic 2 rc0 und angular 2 und ich habe gerade angularfire2 hinzugefügt, um firebse auth zu verwenden.Angularfire2 Redirect nach dem Login

Ich habe alle konfiguriert und getestet (ich sehe nur meinen Benutzer in der Firebase-Konsole angemeldet), aber ich möchte auf andere Seite nach dem Login umleiten.

Mein Code für die Anmeldung:

registerUserWithGoogle() { 
    console.log('Google'); 
    this.af.auth.login(); 
} 

Meine Feuerbasis config:

export const myFirebaseAuthConfig = { 
    provider: AuthProviders.Google, 
    method: AuthMethods.Redirect 
}; 

So gibt es eine Art und Weise nach der Methode login() zu umleiten?

Antwort

3

AngularFire2 hat FirebaseAuth, an die Sie abonnieren können Zustand auth ändert

Auf diese Weise wird empfohlen, Benutzer-Auth zu handhaben, weil Sie auf Veränderungen im Auth Zustand abonnieren werden, könnten auch andere Methoden nicht wie erwartet funktionieren, wie Wenn der Benutzer das Seitenbenutzerobjekt aktualisiert, ist es möglicherweise nicht vorhanden.

import { FirebaseAuth } from 'angularfire2'; 


@Component({ 
    templateUrl: 'app.html' 
}) 
export class AppComponent { 

    constructor(public auth: FirebaseAuth) { 
    } 

    ngOnInit() { 
    this.auth.subscribe(user => { 
     if (user) { 
     // go to home page 
     } else { 
     // go to login page 
     } 
    }); 
    } 

} 

Hinweis: Sie müssen nicht auf jeder Seite abonnieren. Abonniere nur AppComponent oder deine appspezifische Root-Komponente.

+0

danke, es funktioniert ich brauche jetzt eine Ursache im Logout-Methode noch loged aber es leitet so ty so viel –

+0

rufen Sie einfach 'this.auth.logout()', wird es Sie sich abmelden und 'else' Ein Teil von 'authscribe' wird – Vamsi

0

Ich fand, dass dies in meiner Situation besser funktioniert.

loginGoogle(){ 
    this.af.auth.login({ 
    provider: AuthProviders.Google 
    }).then((success) => { 
    this.router.navigate(['/dashboard']); 
    }); 
} 
+2

genannt. Aus irgendeinem Grund wurde die" then "-Versprechungsfunktion für mich nicht getroffen, also habe ich den init-Ansatz oben gemacht. – MIP1983

+0

Das hat dann auch nicht funktioniert. Wenn Sie einen Aufruf von login() durchführen, wird die Komponente neu geladen, nachdem der Benutzer authentifiziert wurde und dieses Versprechen nie erfüllt wird. – jsparks

+0

Hallo Alex Harper Ich implementiere deinen Code aber immer noch nicht funktioniert. Es leitet mit Anmelde- und Anmelde-Komponenten auf einer einzelnen Seite um. –