認証に Firebase を利用するモバイル アプリケーションでは、シームレスなログイン エクスペリエンスを確保することが重要です。一般的な要件は、アプリを閉じて再起動した後でもユーザーのログイン ステータスを維持するワンタイム ログイン メカニズムを実装することです。
ワンタイム ログインを実現するには、Firebase AuthStateListener を活用できます。このリスナーは、ユーザーの認証ステータスの変化を監視し、リアルタイムの更新を提供します。
実装:
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser firebaseUser = firebaseAuth.getCurrentUser(); } };
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
// LoginActivity firebaseAuth.addAuthStateListener(authStateListener); // MainActivity firebaseAuth.addAuthStateListener(authStateListener);
if (firebaseUser != null) { Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); finish(); }
if (firebaseUser == null) { Intent intent = new Intent(MainActivity.this, LoginActivity.class); startActivity(intent); }
最後に、覚えておいてください。メモリを防ぐために、両方のアクティビティの onStop() メソッドでリスナーを削除します。リーク:
@Override protected void onStop() { super.onStop(); firebaseAuth.removeAuthStateListener(authStateListener); }
このメカニズムを実装すると、ユーザーは 1 回サインインするだけで済み、アプリの再起動後も便利でシームレスなログイン エクスペリエンスが確保されます。
以上がFirebase AuthStateListener を使用してワンタイム ログインを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。