Angular firebase简单登录 - 登录方法不起作用

时间:2014-04-23 11:14:57

标签: angularjs firebase

我正在尝试在我的应用程序中实现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});
 }
};

0 个答案:

没有答案