我正在尝试在我的应用程序中实现firebase simple login。我正在为此项目使用yoeman并从firebase身份验证提供程序激活“电子邮件和密码”选项。我可以在firebase中注册用户,但登录代码不起作用。我正在关注firebase login的此文档。遵循代码有什么问题吗?这个问题可能是微不足道的,但我无法完成这项工作 - 我是角度js的新手,这是我第一次尝试用角度来写东西。
我尝试在控制器中编写alert语句来调试它。我发现在控制器.then
中回调不会执行,如果我将警报放在完成错误处理的地方 - 它也不会执行。所以我怀疑在调用login方法时firebase不会返回任何内容。有人可以帮我吗?
这是控制器代码 - 控制器/ auth.js
'use strict';
app.controller('AuthCtrl', function ($scope, $location, Auth) {
$scope.login = function () {
Auth.login($scope.user).then(function () {
$location.path('/');
}, function (error) {
$scope.error = error.toSring();
});
};
$scope.register = function () {
Auth.register($scope.user).then(function (authUser) {
console.log(authUser);
$location.path('/');
}, function (error) {
$scope.error = error.toSring();
});
};
});
这是服务代码 - 服务/ auth.js
'use strict';
app.factory('Auth', function ($firebaseSimpleLogin, FIREBASE_URL, $rootScope) {
var ref = new Firebase(FIREBASE_URL);
var auth = $firebaseSimpleLogin(ref);
var Auth = {
register: function (user) {
return auth.$createUser(user.email, user.password);
},
login: function (user) {
// not working
auth.login('password', {'email': user.email, 'password': user.password});
}
};
return Auth;
});
它解决了。问题是由于登录方法的参数错误造成的。这是更正的行(services / auth.js) -
var Auth = {
....
login: function (user) {
// not working
auth.login('password', {'email': user.email, 'password': user.password});
}
};