2

イオン2 rc0と角度2を使用しています.Firebse認証を使用するためにangularfire2を追加しました。ログイン後にAngularfire2リダイレクト

私はすべて設定してテストしました(私は自分のユーザーがfirebaseコンソールにログインしているのを見ています)が、ログイン後に他のページにリダイレクトしたいのです。ログインの

マイコード:

registerUserWithGoogle() { 
    console.log('Google'); 
    this.af.auth.login(); 
} 

私firebase設定は次のとおりです。

export const myFirebaseAuthConfig = { 
    provider: AuthProviders.Google, 
    method: AuthMethods.Redirect 
}; 

だから、メソッドのログイン後にリダイレクトする方法がありますか()?

答えて

3

AngularFire2これは、あなたが認証状態の変化に加入しますので同様に、予想されるように、他の方法が動作しない場合があります、ユーザー認証を処理するための推奨される方法です

を変更し、あなたが認証状態を購読することができますしている、FirebaseAuthを持っていますユーザーがページをリフレッシュすると、ユーザーオブジェクトが存在しない可能性があります。

import { FirebaseAuth } from 'angularfire2'; 


@Component({ 
    templateUrl: 'app.html' 
}) 
export class AppComponent { 

    constructor(public auth: FirebaseAuth) { 
    } 

    ngOnInit() { 
    this.auth.subscribe(user => { 
     if (user) { 
     // go to home page 
     } else { 
     // go to login page 
     } 
    }); 
    } 

} 

注:あなたはすべてのページに加入する必要はありません。 AppComponentまたはアプリ固有のルートコンポーネントでのみ登録してください。

+0

は、それは私はまだloged logoutメソッド原因イムを必要とする機能するようになりましたが、それはそんなに –

+0

はちょうど ')(this.auth.logout'を呼び出すのでTYリダイレクトし、それはあなたをログアウトし、 'else'、ありがとうございました'auth.subscribe'の一部は – Vamsi

0

私の状況ではこれがうまくいくことがわかりました。

loginGoogle(){ 
    this.af.auth.login({ 
    provider: AuthProviders.Google 
    }).then((success) => { 
    this.router.navigate(['/dashboard']); 
    }); 
} 
+2

と呼ばれます何らかの理由で 'then'約束関数が私のためにヒットしなかったので、上記のinitのアプローチを行いました。 – MIP1983

+0

それから私のために働いていなかった。 login()を呼び出すと、ユーザーが認証された後にコンポーネントがリロードされるため、約束が達成されることはありません。 – jsparks

+0

hello Alex Harper私はあなたのコードを実装していますが、まだ動作していません。ログインとサインアップコンポーネントを1ページにリダイレクトします。 –

関連する問題