关于stackoverflow的第一个问题,请告诉我我的信息是否不足。提前致谢。
我正在尝试实现firebase-simple-login,但我得到的唯一错误类型是signIn函数上的'INVALID EMAIL'。如果我使用现有电子邮件输入错误的密码,它仍会抛出无效的电子邮件。
$scope.signIn = function() {
$rootScope.auth.$login('password', {
email: $scope.email,
password: $scope.password
}).then(function(user) {
console.log("user has email " + user.email);
}, function(error) {
if (error = 'INVALID_EMAIL') {
console.log('email invalid or not signed up');
} else if (error = 'INVALID_PASSWORD') {
console.log('invalid password');
} else {
console.log(error);
}
});
};
供额外参考;带有相应表单的html
<div class="form-group">
<input type="email" class="form-control" placeholder="email" ng-model="email" />
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="password" ng-model="password" />
</div>
<button type="submit" class="btn btn-success" ng-click="signIn()">Sign in</button>
我似乎无法在firebase文档中找到任何有用的错误类型,所以我希望你能提供帮助。
CreateUser被调用:
$scope.signUp = function() {
$rootScope.auth.$createUser($scope.email, $scope.password, function(error,user) {
if (!error) {
console.log('User Id: ' + user.uid + ', Email: ' + user.email);
}
}).then(function(){
$rootScope.auth.$login('password', {
email: $scope.email,
password: $scope.password
});
});
};
答案 0 :(得分:1)
这是我在进一步检查错误功能后找到的解决方案。您似乎需要进入错误对象,而不仅仅是error.code
error
,而是使用运算符===
代替=
。我从firebase文档中直接提升了$login()
,但在这个过程中我可能会混淆一些东西。无论如何,这是工作代码。
function(error) {
if (error.code === 'INVALID_EMAIL') {
console.log('email invalid or not signed up');
} else if (error.code === 'INVALID_PASSWORD') {
console.log('invalid password');
}
答案 1 :(得分:0)
您实际上可以使用Firebase提供的错误消息而不是if子句。
function(error){
if(error){
console.log(error_code.message)
}
}