AngularFire (2.0.0-beta.2) を待機してログイン ステータスを確認し、ユーザーをログインさせるルーター ガードを Angular.js 2 (2.0.0-rc.4) (angular cli で作成) に記述しようとしています (匿名で) ユーザーが状態に許可する前にまだログインしている場合。
私のガードコードは次のとおりです。
canActivate() {
/* This part is to detect auth changes and log user in anonymously */
this.auth
.subscribe(auth => {
if (!auth) {
this.auth.login();
}
});
/* This part is to listen to auth changes and IF there is an auth, resolves this guard with a true to let user in */
return this.auth
.asObservable()
.filter(auth => {
return auth ? true : false;
})
.map(x => {
console.log("TEST 1000");
return true;
});
}
アプリケーションを実行すると、 my routeを返すことがアクティブ化されていないTEST 1000
ことを示すコンソール出力が表示されます。canActivate()
true
私の論理に誤った考え方があるのでしょうか、それともこれを賢くデバッグするための明るいアイデアがあるのでしょうか。