我如何在routes.js上使用firebase登录时创建记住我

时间:2016-07-28 20:31:44

标签: angularjs ionic-framework firebase angularfire

这是一个带有firebase google身份验证的离子应用程序。我想知道这样做的正确方法因为我的登录逻辑工作但路由崩溃了应用程序。不幸的是,控制台上没有错误,应用程序只是空白。

angular.module('app.routes', ['app.controllers','firebase'])


.config(function($stateProvider, $urlRouterProvider)
{
  $stateProvider

      .state('tabsController.allTasks', {
    url: '/alltasks',
    views: {
      'tab1': {
        templateUrl: 'templates/allTasks.html',
        controller: 'allTasksCtrl',
        resolve : {

        }

      }
    }
  })

  .state('tabsController', {
    url: '/page1',
    templateUrl: 'templates/tabsController.html',
    abstract:true
  })

  .state('signup', {
    url: '/signup',
    templateUrl: 'templates/signup.html',
    controller: 'signupCtrl'
  })

  .state('onboarding', {
  url: '/onboarding',
  templateUrl: 'templates/onboarding.html',
  controller: 'onBoardingCtrl'
})

  .state('logOut', {
    url: '/logout',
    templateUrl: 'templates/logOut.html',
    controller: 'logOutCtrl'
  })

  .state('taskdetail', {
    url: '/taskdetail',
    templateUrl: 'templates/taskdetail.html',
    controller: 'allTasksCtrl'
  })



    firebase.auth().onAuthStateChanged(function(user) {
    if (user)
    {
        $urlRouterProvider.otherwise('tabsController.allTasks')
    }
    else
    {
          $urlRouterProvider.otherwise('login')
    }
});

1 个答案:

答案 0 :(得分:1)

删除.config中的firebase代码块,然后将其插入.run块中。

.run(function($state) {
  var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
  var authData = ref.getAuth();

  if (authData) {
    $state.go('tabsController.allTasks');
  } else {
    $state.go('login');
  }
})