Fug*_*Web 2 javascript angularjs firebase angularfire
我陷入了僵局.我正在尝试使用$ firebaseAuth创建一个使用AngularFire的用户,而不是文档中推荐的已弃用的FirebaseSimpleLogin.我确信表单提交了有效的电子邮件和密码,但我仍然在控制台中收到以下错误:
Error: Firebase.createUser failed: First argument must contain the key "email" with type "string"
你可以看到代码,我使用工厂服务来处理$ createUser方法,这是发生错误的地方,因为后续的console.logs在方法返回后没有触发.请注意,我也尝试在文档中使用样板代码,而不是在控制器和服务之间拆分它并收到相同的错误.非常感谢您的帮助,谢谢!
表单元素上的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);
})
.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);
}
};
Run Code Online (Sandbox Code Playgroud)
更新:只需升级到AngularFire 0.9.1或更高版本,此问题将得到解决.
更新细节:使用单个凭证参数(如原始提问者所做的那样)现在是从AngularFire 0.9.1开始调用此(以及其他身份验证方法)的建议方法.下面描述的格式已被弃用,将在即将发布的版本中删除,因此我们不建议使用它.
编写文档时这是我的错.我为完全可以理解的混乱道歉.我希望保持API在某种程度上向后兼容以前的AngularFire API,并决定让用户管理方法采用单独的参数,而不是像常规Firebase SDK那样的参数对象.但是,文档(和示例)并未准确反映此决定.您的代码应如下所示:
auth.$createUser("test@test.com", "password").then(function() {
console.log("User created successfully!");
}).catch(function(error) {
console.log("Error:", error);
});
Run Code Online (Sandbox Code Playgroud)
我会立即更新文档,但这是解决问题的方法.
| 归档时间: |
|
| 查看次数: |
2384 次 |
| 最近记录: |