我试图在angularfire项目中删除用户。电子邮件和密码正确传递但由于某种原因,此方法无法执行。这是我的身份验证服务中的代码(我添加了一些解释性注释):
removeUser: function (email, password) {
console.log(email); --> Correct Email
console.log(password); --> Correct password
auth.$removeUser(email, password, function (succes, error) {
console.log('in removeUser'); --> Does not print
if (!error) {
console.log('user deleted'); --> Also doesn't print
} else {
console.log(error); --> You guessed it, doesn't print
}
});
console.log('Why am I even here?'); --> Does print
}
auth变量是正确的,我没有收到任何错误。
这是我获取angularfire引用的方法,其他方法如$ createUser和$ login正常工作:
var ref = new Firebase(FIREBASE_URL);
var auth = $firebaseSimpleLogin(ref);
编辑#2:我注意到resetpassword确实有效,但回调并没有发生。有谁知道为什么?无论我输入错误还是正确的旧密码,它都不会打印任何内容
resetpassword: function (email, oldPassword, newPassword) {
return auth.$changePassword(email, oldPassword, newPassword, function (error) {
console.log('in resetpass auth'); //doesn't print, no errors
if (!error) {
console.log('Password changed succesfully');
} else {
console.log(error);
}
});
}
答案 0 :(得分:1)
直接使用Firebase Simple Login时,上面引用的方法接受回调作为最终参数。但是,当通过AngularFire使用Firebase + AngularJS时,这些方法被包装为对Angular开发更友好,并返回promises而不是接受回调。
有关详细信息,请参阅https://www.firebase.com/docs/angular/reference.html#changepassword-email-oldpassword-newpassword。