我正在尝试在我的应用程序中实现firebase simple login . 我正在为此项目使用yoeman并从firebase身份验证提供程序激活"Email & password"选项 . 我可以在firebase中注册用户,但登录代码不起作用 . 我正在关注firebase login的这个文档 . 遵循代码有什么问题吗?这个问题可能是微不足道的,但我无法完成这项工作 - 我是角度js的新手,这是我第一次尝试用角度来写东西 .

我试过在控制器中编写alert语句来调试它 . 我发现在控制器 .then 回调中没有't execute, also if I put alert where error handling is done - it also doesn' t执行 . 所以我怀疑在调用login方法时firebase不会返回任何内容 . 有人可以帮我吗?

这是控制器代码 - controller / 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();
    });
  };
});

这是服务代码 - services / 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});
 }
};