我一直在学习Firebase的课程,但很快发现很多事情都发生了变化。https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-用户和身份验证createusercredentials这些文件已经完全过时了。
在这里我声明我的火球变量
var ref = firebase.database().ref();
var firebasedata = $firebaseObject(ref);
var auth = $firebaseAuth();
然后我试着调用这个函数
this.register = function() {
auth.$createUserWithEmailAndPassword({
email: this.user.email,
password: this.user.password
}).then(function(regUser) {
$log.log(regUser);
}).catch(function(error) {
$log.log(error);
});
};
但它抛出了一个错误:
代码:"身份验证/参数错误"消息:createUserWithEmailAndPassword失败:第一个参数"email"必须是有效字符串。
我一直在寻找这个问题的答案,但我能找到的只是更新我的angularfire或firebase(这都是最新版本(,或者this.user.email不是字符串。当我做时
console.log(this.user.email);
我可以看到它是一个包含有效电子邮件的字符串。
欢迎向正确方向提供任何帮助!
对于遇到此问题的任何人:
旧
auth.$createUser()
函数将用户对象作为参数。
While:
auth.$createUserWithEmailAndPassword()
将2个字符串作为参数,而不是一个对象。
从更改代码
auth.$createUserWithEmailAndPassword({
email: this.user.email,
password: this.user.password
})
至
auth.createUserWithEmailAndPassword(user.email, user.password);
更改功能参数如下:
this.register = function() {
auth.$createUserWithEmailAndPassword(this.user.email,this.user.password).then(function(regUser) {
$log.log(regUser);
}).catch(function(error) {
$log.log(error);
});
};
$scope.register = function() {
firebase.auth().createUserWithEmailAndPassword($scope.email, $scope.password)
.then(function(user) {
console.log(user);
})
.catch(function(error) {
console.log(error);
});
//}
}
在这里,你可以这样使用它。