2016-07-28 4 views
1

これはfirebase google認証付きのイオンアプリです。ログインロジックは動作しますが、ルーティングがアプリをクラッシュさせるという正しい方法を知りたいのですが。残念ながら、コンソール上にエラーはなく、アプリは空白になります。私はroutes.jsでfirebase meでログインして私を覚えていますか?

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') 
 
    } 
 
});

+0

https://github.com/firebase/angularfireこれをチェックしてみて下さい –

答えて

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'); 
    } 
}) 
+0

問題は、私がログインしたときに()authData私はヌルを得るということです。私はログインをリフレッシュして、もう一度nullを取得してみてください。 –

+0

これはブラウザ上でのみ動作しますが、アンドロイドデバイスでは動作しません –

+0

1. cordova-plugin-whitelistを追加し、2. configbaseでFirebaseドメインhttps:// .firebaseio.comをホワイトリストに追加してください。そのURLと通信できますhttps://cordova.apache.org/docs/en/2.5.0/guide/whitelist/ – tothefux

関連する問題