gpt4 book ai didi

javascript - Angular Firebase $createUser 函数返回错误

转载 作者:行者123 更新时间:2023-12-01 09:23:33 25 4
gpt4 key购买 nike

我在这方面陷入僵局。我正在尝试使用 $firebaseAuth 而不是已弃用的 FirebaseSimpleLogin 创建一个 AngularFire 用户,正如文档中所建议的那样。我确定该表单提交了有效的电子邮件和密码,但我继续在控制台中收到以下错误:

Error: Firebase.createUser failed: First argument must contain the key "email" with type "string"

你可以看到代码,我使用工厂服务来处理 $createUser 方法,这是错误发生的地方,因为一旦该方法返回,后续的 console.logs 就不会触发。请注意,我也曾尝试使用文档中的样板代码而不是在 Controller 和服务之间拆分它,但我收到了同样的错误。非常感谢您的协助,谢谢!

ng-submit="register()"在表单元素上

$scope.register = function(){
console.log($scope.user); // logs object correctly
// Authentication is passed into the controller as a dependency
Authentication.register($scope.user)
.then(function(){
//This does NOT fire
console.log("User created successfully!");
Authentication.login($scope.user);<br/>
})
.then(function(authData){
console.log("Logged in as:", authData.uid);
})
.catch(function(error) {
console.log('error');
$scope.errorMessage = error.toString();
});
};

认证工厂服务

var obj = {
register: function(user){
var obj = {email: user.email, password: user.password};
console.log(obj); // works correctly
//var auth has the reference to Firebase
return auth.$createUser(obj);
}
};

最佳答案

更新:只需升级到 AngularFire 0.9.1 或更高版本,这个问题就会得到解决。

更新详细信息:从 AngularFire 0.9.1 开始,现在建议使用单个凭据参数(如原始提问者所做的那样)来调用此方法(以及其他身份验证方法)。下面描述的格式已被弃用,并将在即将发布的版本中删除,因此我们不建议使用它。

这是我写文档的错。对于完全可以理解的困惑,我深表歉意。我想让 API 在某种程度上向后兼容以前的 AngularFire API,并决定让用户管理方法采用单独的参数,而不是像常规 Firebase SDK 那样采用参数对象。但是,文档(和示例)并未准确反射(reflect)此决定。您的代码应如下所示:

auth.$createUser("test@test.com", "password").then(function() {
console.log("User created successfully!");
}).catch(function(error) {
console.log("Error:", error);
});

我会立即更新文档,但这里是让您畅通无阻的答案。

关于javascript - Angular Firebase $createUser 函数返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com