从承诺中捕获Firebase身份验证错误

时间:2016-09-20 09:26:53

标签: javascript angularjs javascript-events firebase firebase-authentication

我尝试使用从登录尝试后从Firebase收到的承诺来捕获并显示身份验证错误。

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

在触发btnsignin时,直到再次单击时才会显示身份验证错误。对此有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

此问题是由于AngularJS未意识到您已更新范围。因此,当您更新该值时,AngularJS不会重新绘制该视图。要提醒更新,请使用$timeout$apply

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

或者,您可以简单地将承诺分配给范围:

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

然后在您的视图中阅读来自那里的消息:

{{signinchallenges.message}}