从承诺中捕获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}}
感谢它的工作。 – victoroniibukun
如果我的回答很有用,请点击左侧的upvote按钮。如果它回答了您的问题,请点击复选标记以接受它。这样别人就知道你已经(充分)帮助了。 –