我尝试使用尝试登录后从 Firebase 收到的 promise 来捕获并显示身份验证错误。
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 不会重新绘制 View 。要提醒其更新,请使用 $timeout
或 $apply
:
promise.catch(function(e) {
$timeout(function(e) {
$scope.signinchallenges = e.message;
});
})
或者,您可以简单地将 promise 分配给范围:
$scope.signinchallenges = auth.signInWithEmailAndPassword(emailaddress, passworddetail);
然后在您的 View 中阅读来自那里的消息:
{{signinchallenges.message}}
关于javascript - 从 Promise 捕获 Firebase 身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590392/