0

私は私のAuth.$requiredAuth()

.config(function($stateProvider, $urlRouterProvider){ 
$stateProvider.state('cursustext', { 
    url: '/cursustext', 
    templateUrl: 'views/cursustext/cursustext.html', 
    controller: 'cursustextCtrl', 
    resolved: { 
    "currentAuth": ["Auth", function(Auth){ 
    return Auth.$requireAuth(); 
    }] 
    } 
}) 
}) 

に問題がある -

.factory('Auth', function($firebaseAuth){ 
var auth = $firebaseAuth(); 
return auth; 
}) 

を問題は次のとおりです。私がログインしていないよ場合は、私はまだページに行くことができます。

これを修正する方法を知っている人はいますか?敬具

、 JUR

EDIT/UPDATE

angular.module('myApp.cursustext', ['ui.router']) 
 

 
.run(["$rootScope", "$state", function($rootScope, $state) { 
 
    $rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) { 
 
    if (error === "AUTH_REQUIRED") { 
 
     $state.go('home'); 
 
    } 
 
    }); 
 
}]) 
 

 
.config(function($stateProvider, $urlRouterProvider){ 
 
    $stateProvider.state('cursustext', { 
 
    url: '/cursustext', 
 
    templateUrl: 'views/cursustext/cursustext.html', 
 
    controller: 'cursustextCtrl', 
 
    resolve: { 
 
     "currentAuth": ["Auth", function(Auth) { 
 
     return Auth.$requireSignIn(); 
 
     }] 
 
    } 
 
    })

それが機能するようになりました。しかし、私がログインしていないときは、ホームページにリダイレクトされません。どうやって?ここ

答えて

1

タイプミス:

resolved: { 
    "currentAuth": ["Auth", function(Auth){ 
    return Auth.$requireAuth(); 
    }] 
} 

resolve: { 
    "currentAuth": ["Auth", function(Auth){ 
    return Auth.$requireAuth(); 
    }] 
} 

決意が最も可能性が高い、これは強制的にパーサを防ぐため、ルートが変更される前に、成功裏に解決しなければならない1つ以上の依存関係が含まれているが解決されなければなりませんAuth依存関係の解決であり、そのため、ログに記録されていない状態を見ることができます。

EDIT: あなたがこれを行うことができ、エラーのケースを処理するために:

resolve: { 
    "currentAuth": ["Auth", function(Auth){ 
     return Auth.$requireAuth().then(function(resp){ 
     return resp; 
     }) 
     .catch(function(err){ 
     $location.path('/home'); //redirect to home page in case of error 
     }) 
    }] 
} 
+0

私はそれを変更しましたが、今はエラーが発生しました: 'stateService.ts:525移行拒否($ id:0タイプ:6、メッセージ:移行エラー、詳細:TypeError:Auth。$ requireAuth is not関数) ' –

+1

ok解決ブロックに達したら、このトピックが役立つかどうか確認してください。 https://stackoverflow.com/questions/35042270/issues-with-firebase-auth-requireauth – Karim

+0

コメントの1秒前に私はそれを読んで、ありがとう。 –

0

ちょっとあなたが問題を修正願って、とにかく私は私が解決し、同じ問題

stateService.ts:525 Transition Rejection 

に走りました古いバージョンのAngular Ui Routerを使用します。

bower install angular-ui-router#0.3.1 

最新のUiルータには、Angularfire Authの例に関する問題がありました。 乾杯します。