0

Ich versuche, einen Authentifizierungsfehler mithilfe eines von Firebase nach einem Anmeldeversuch erhaltenen Versprechens abzufangen und anzuzeigen.Abfangen des Firebase-Authentifizierungsfehlers von einem Versprechen

btnsignin.addEventListener('click', e =>{ 
    const emailaddress = email.value; 
    const passworddetail = password.value; 
    const auth = firebase.auth(); 
    const promise = auth.signInWithEmailAndPassword(emailaddress, passworddetail); 
    **promise.catch(function(e) { 
     $scope.signinchallenges = e.message; 
    }); 
});** 

Im Moment, wenn die btnsignin ausgelöst wird, wird der Authentifizierungsfehler, bis nicht angezeigt, wenn erneut geklickt. Irgendwelche Hilfe dabei?

Antwort

0

Dieses Problem wird durch die Tatsache verursacht, dass AngularJS nicht weiß, dass Sie den Bereich aktualisiert haben. Während Sie den Wert aktualisiert haben, aktualisiert AngularJS die Ansicht nicht neu. Um es auf das Update aufmerksam machen, verwenden $timeout oder $apply:

promise.catch(function(e) { 
    $timeout(function(e) { 
    $scope.signinchallenges = e.message; 
    }); 
}) 

Alternativ können Sie in der Lage sein, einfach das Versprechen auf den Umfang zuweisen:

$scope.signinchallenges = auth.signInWithEmailAndPassword(emailaddress, passworddetail); 

Und dann Ihrer Ansicht lesen Sie die Nachricht aus da:

{{signinchallenges.message}} 
+0

Danke, es hat funktioniert. – victoroniibukun

+0

Wenn meine Antwort nützlich war, klicken Sie auf den Upvote-Button links davon. Wenn es Ihre Frage beantwortet hat, klicken Sie auf das Häkchen, um es zu akzeptieren. Auf diese Weise wissen andere, dass Ihnen (ausreichend) geholfen wurde. –

Verwandte Themen