I AngularFire2 (Ionic2) und Firebase Authentifizierung verwenden.Wie die firebase.User in AngularFire2 bekommen
Ich habe ein Problem, versuchen, den aktuellen Benutzer zu erhalten. Das funktioniert für mich aber uneinheitlich. Manchmal ist es ausgefüllt und manchmal ist es null.
let user: firebase.User = firebase.auth().currentUser;
Gibt es eine Möglichkeit, den aktuellen Benutzer konsistenter zu bekommen?
Mehr Info:
Ich bin der Anmeldung wie folgt:
import { FirebaseAuth, AuthProviders, AuthMethods } from 'angularfire2';
public auth: FirebaseAuth
this.auth.login({
provider: AuthProviders.Google,
method: AuthMethods.Popup
}).then((data: any) => {
this.fireAuth.onAuthStateChanged((user) => {
....
});
});
Hier wird der Benutzer immer aufgefüllt. Aber wo ich Zugang zum Benutzer bekommen muss, ist in einem anderen Teil des Codes.
Jede Hilfe wird geschätzt.
UPDATE
ich versuchen, die den aktuellen Benutzer erhalten folgende:
this.auth.subscribe((authData) => {
let user = authData.auth;
credential = firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken);
user.reauthenticate(credential).then(() => {...
});
Aber dann, wenn ich versuche, die Anmeldeinformationen erstellen, erhalte ich folgende Fehlermeldung:
EXCEPTION: Uncaught (in promise): Error: reauthenticate failed: First argument "credential" must be a valid credential.
Wenn ich den aktuellen Benutzer in der ersten Methode bekomme, bekomme ich keine Fehler und es funktioniert.
Weitere Informationen:
Wenn ich die folgenden user
Objekte console.log
, sie beide identisch aussehen:
let user: firebase.User = this.fireAuth.currentUser;
console.log(user);
und
this.auth.subscribe((authData) => {
let user: firebase.User = authData.auth;
console.log(user);
});
aber das eine funktioniert (wenn nicht null) und die Andere können sich nicht erneut authentifizieren.
helfen können Warum versuchen Sie zu 'reauthenticate' wenn Sie versuchen, zu' login'? Wie authentifizierst du dich während eines "Login" Prozesses? – Rexford