2016-03-21 4 views
2

私のメイン/スタートアップ活動が私のSignInActivityであると私はelseステートメントで Firebase認証リスナーログインアクティビティに戻る方法Firebase authlistener?

mFirebase.addAuthStateListener(new Firebase.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(AuthData authData) { 
      if (authData != null) { 
       // go to auth activity 
       // such as user logging in 
      } else { 
       if(!(this instanceof SignInActivity)){ 
        // if i sign out in an auth activity 
        // i want to trigger this to go back to the SignIn Activity 
        Intent mIntent = new Intent(getApplicationContext(), SignInActivity.class); 
        mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(mIntent); 
        finish(); 
        return; 
       } 
      } 
     } 
    }); 

を含めました、もし条件が動作しません。私はthisをネストされたオブジェクトの内部で使うことができないことを知っています。私はいくつかの試みを試みましたが、私は常にちらつきがあり、条件が常に満たされているので無限ループに終わると思います。これについて正しいことは何でしょうか?

答えて

0

これを試してみてください:

mFirebase.addAuthStateListener(new Firebase.AuthStateListener() { 
    @Override 
    public void onAuthStateChanged(AuthData authData) { 
     if (authData != null) { 
      // go to auth activity 
      // such as user logging in 
     } else { 
      if(!(SignInActivity.this instanceof SignInActivity)){ 
       // if i sign out in an auth activity 
       // i want to trigger this to go back to the SignIn Activity 
       Intent mIntent = new Intent(getApplicationContext(), SignInActivity.class); 
       mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(mIntent); 
       finish(); 
       return; 
      } 
     } 
    } 
}); 

Is it safe to use MainActivity.this

+0

その原因mActivityは、常にそのSignInActivityで宣言されたので、SignInActivityのインスタンスをするだろうか? – user2439604

+0

ここでのアイデアは、ユーザーがアプリケーションを再オープンしたときにユーザーがログインしているかどうかを確認することだけであれば、そのelseステートメントは必要ありません。ユーザーがログインしていない場合は、何もすることはできません。 – TheOriginalAlex

+0

その理由の1つです。ユーザーが別のアクティビティの中にいて、ユーザーがサインアウトした場合、これをトリガーします。サインアウトボタン/リンクがクリックされると、ユーザーは不安定になり、このケースをキャッチしてSignInActivityにリダイレクトされることを期待しています – user2439604

関連する問題