webentwicklung-frage-antwort-db.com.de

javascript firebase.auth (). signInWithEmailAndPassword kann kein Erfolgsereignis abrufen

Ich arbeite mit Java-scriptfire-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.

6
Jay Rathod RJ

Überprüfen Sie einfach den folgenden Code:

firebase.auth().signInWithEmailAndPassword("[email protected]", "******")
   .then(function(firebaseUser) {
       // Success 
   })
  .catch(function(error) {
       // Error Handling
  });
28
user123456789

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);
        }

      }
0
PHILL BOOTH