Ich arbeite mit Java-script
fire-base
in meiner App.
Ich kann createUserWithEmailAndPassword
erfolgreich in App. Es zeigt auch diese Daten in Fire-base Console
.
Hier ist ein Ausschnitt.
firebase.auth().createUserWithEmailAndPassword("[email protected]", "*******").catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log("Eroor Msg" + errorMessage);
// ...
});
Dann habe ich firebase.auth().signInWithEmailAndPassword
durchlaufen.
Mit der obigen Methode kann ich keine Erfolgsereignisse oder -meldungen an log
senden. Auch wirft keine error
.
Hier ist ein Ausschnitt.
firebase.auth().signInWithEmailAndPassword("[email protected]", "*****")
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/wrong-password') {
alert('Wrong password.');
} else {
alert(errorMessage);
}
console.log(error);
});
Meine Frage ist, wie man mit dieser Methode ein Erfolgsereignis erhält signInWithEmailAndPassword
?
Jede Hilfe wird sehr geschätzt.
Überprüfen Sie einfach den folgenden Code:
firebase.auth().signInWithEmailAndPassword("[email protected]", "******")
.then(function(firebaseUser) {
// Success
})
.catch(function(error) {
// Error Handling
});
Dies muss mit einem onAuthState-Objekt erfolgen. Unten ist der Code, um zu überprüfen, ob der Benutzer erfolgreich angemeldet ist oder nicht
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
sie können diesen Code ausführen, nachdem Sie sich erfolgreich angemeldet haben. Übrigens gibt es kein von SignInWithEmailAndPassword zur Überprüfung zurückgegebenes Objekt.
Kann ich ein wenig kritisch gegenüber anderem Code sein, den ich sehe, damit die Leute verstehen, wann "Funktion" mit einem Return-Ereignis verwendet werden soll ...
//run one function only
.then(function(firebaseUser) => this.myfunction(firebaseUser); );
//run lines of code
.then((firebaseUser) => {
// line1
// line2
);
Mein Code für Ionic kann für AngularCLI etwas anders sein
public async dologinUser(newEmail: string, newPassword: string): Promise<any> {
try {
return await this._afAuth.auth.signInWithEmailAndPassword(newEmail, newPassword)
.then((firebaseUser) => {
if (firebaseUser) {
//do something
}
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
alert(errorMessage);
});
} catch (e) {
console.error("big hu?", e);
}
}