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

问题描述:

我试图在登录尝试后使用从Firebase收到的承诺来捕获并显示身份验证错误。从承诺中捕获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被触发的那一刻,身份验证错误不显示时再次点击,直到。有什么帮助呢?

此问题是由AngularJS不知道您已更新范围这一事实引起的。所以,当你更新了这个值的时候,AngularJS不会重画视图。它提醒了更新,使用$timeout$apply

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

或者,你也许可以简单地分配承诺的范围:

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

,然后在视图中读取消息有:

{{signinchallenges.message}} 
+0

感谢它的工作。 – victoroniibukun

+0

如果我的回答很有用,请点击左侧的upvote按钮。如果它回答了您的问题,请点击复选标记以接受它。这样别人就知道你已经(充分)帮助了。 –