Javascript 如何在app.js中检查angularfire身份验证状态

Javascript 如何在app.js中检查angularfire身份验证状态,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我遵循angularfire教程来验证用户。 用户可以在应用程序中注册、登录甚至注销 当我尝试使用解析来检查某些路由(ui路由)的$requireSignIn()时,它不起作用 另外,我想在加载模块的app.js中检查用户身份验证状态($onAuthStateChanged())。然后,如果身份验证发生更改,请更新身份验证服务(userAuth)。我正在使用ng show=“authData”/ng hide=“authData”更改已登录元素的html。但有时即使在登录后,这些元素中的一些仍显

我遵循angularfire教程来验证用户。 用户可以在应用程序中注册、登录甚至注销

当我尝试使用解析来检查某些路由(ui路由)的$requireSignIn()时,它不起作用

另外,我想在加载模块的app.js中检查用户身份验证状态($onAuthStateChanged())。然后,如果身份验证发生更改,请更新身份验证服务(userAuth)。我正在使用ng show=“authData”/ng hide=“authData”更改已登录元素的html。但有时即使在登录后,这些元素中的一些仍显示为未登录。我认为这与身份验证更新状态有关

如果用户已登录并尝试访问登录/注册页面,请将其发送回主页

这是我的app.js

angular
  .module('myApp', [
    'ngAnimate',
    'ngAria',
    'ngCookies',
    'ngResource',
    'ui.router',
    'ngMeta',
    'firebase'
  ])

   .run(["$rootScope", "$state", function($rootScope, $state) {
    $rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) {
      if (error === "AUTH_REQUIRED") {

        $state.go("home");
      }

    });
    }])

  .config(['$stateProvider', '$urlRouterProvider', '$locationProvider',
   function( $stateProvider, $urlRouterProvider, $locationProvider, ngMetaProvider, $location, userAuth) {


    $urlRouterProvider.otherwise('/');


    $stateProvider
        .state('/', {
            url: '/',
            templateUrl: 'views/main.html',
            controller: 'MainCtrl',
            meta: {
              'title': 'Goaf | Your next great destination',
              'description': 'This is the description shown in Google search results'
            }
        })
      .state('home', {
        url: '/home',
        templateUrl: 'views/home.html',
        controller: 'HomeCtrl',
        meta: {
          'title': 'Goaf | Your next great destination',
          'description': 'This is the description shown in Google search results'
        },
        resolve: {

        "currentAuth": ["userAuth", function(userAuth) {
          return userAuth.$requireSignIn();
        }]
      }

    })


  }]);
以下是主页的控制器,我只希望登录用户:

angular.module('myApp')
  .controller('HomeCtrl', ["currentAuth", function ($rootScope, $scope, $http, $interval, $location, userAuth, dataservice, currentAuth) {

    $scope.authData = userAuth.isLoggedIn();

  }]);
这是我的userAuth服务文件:

angular.module('myApp')
  .service('userAuth', ["$firebaseAuth", function($firebaseAuth) {
    var firebaseAuthObject  = $firebaseAuth();

    this.login = function(loginEmail, loginPassword){

       return firebaseAuthObject.$signInWithEmailAndPassword(loginEmail, loginPassword);
    };

    this.isLoggedIn = function(){
         return firebaseAuthObject.$getAuth();
    };

    this.signOutUser = function() {
      firebaseAuthObject.$signOut();

      console.log('logging out user!');
    };

  }
 ]);