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
をネストされたオブジェクトの内部で使うことができないことを知っています。私はいくつかの試みを試みましたが、私は常にちらつきがあり、条件が常に満たされているので無限ループに終わると思います。これについて正しいことは何でしょうか?
その原因mActivityは、常にそのSignInActivityで宣言されたので、SignInActivityのインスタンスをするだろうか? – user2439604
ここでのアイデアは、ユーザーがアプリケーションを再オープンしたときにユーザーがログインしているかどうかを確認することだけであれば、そのelseステートメントは必要ありません。ユーザーがログインしていない場合は、何もすることはできません。 – TheOriginalAlex
その理由の1つです。ユーザーが別のアクティビティの中にいて、ユーザーがサインアウトした場合、これをトリガーします。サインアウトボタン/リンクがクリックされると、ユーザーは不安定になり、このケースをキャッチしてSignInActivityにリダイレクトされることを期待しています – user2439604