Maison >Java >javaDidacticiel >Comment implémenter une connexion unique avec l'authentification Firebase sous Android ?

Comment implémenter une connexion unique avec l'authentification Firebase sous Android ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-09 06:07:14479parcourir

How to Implement Single-Time Login with Firebase Authentication in Android?

Implémentation de connexion unique dans une application avec authentification Firebase

Introduction :

Réalisation d'un mécanisme de connexion unique dans une application utilisant l'authentification Firebase garantit que les utilisateurs restent connectés même après la fermeture et la réouverture de l'application. Cela simplifie l'expérience utilisateur et élimine le besoin d'écrans de connexion répétitifs.

Mise en œuvre :

Utilisation de FirebaseAuth AuthStateListener

Pour implémentez une connexion unique, un FirebaseAuth AuthStateListener peut être utilisé. Cet écouteur surveille les changements dans l'état d'authentification, vous permettant de gérer les événements de connexion et de déconnexion des utilisateurs.

LoginActivity :

  1. Créez un AuthStateListener :
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
        if (firebaseUser != null) {
            // If user logged in, redirect to MainActivity
            // Remove current view to prevent re-displaying LoginActivity
            startActivity(new Intent(LoginActivity.this, MainActivity.class));
            finish();
        }
    }
};
  1. Commencez à écouter onStart() :
@Override
protected void onStart() {
    super.onStart();
    firebaseAuth.addAuthStateListener(authStateListener);
}

MainActivity :

  1. Créer un AuthStateListener :
FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
        if (firebaseUser == null) {
            // If user not logged in, redirect to LoginActivity
            // Remove background activity to ensure single-time login
            startActivity(new Intent(MainActivity.this, LoginActivity.class));
        }
    }
};
  1. Commencez à écouter onStart() :
@Override
protected void onStart() {
    super.onStart();
    firebaseAuth.addAuthStateListener(authStateListener);
}
  1. Arrêter d'écouter dans onStop() :
@Override
protected void onStop() {
    super.onStop();
    firebaseAuth.removeAuthStateListener(authStateListener);
}

Remarque :

  • Les deux activités nécessitent un FirebaseAuth exemple :
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
  • Dans les deux activités, la suppression des auditeurs dans onStop() garantit une bonne gestion des ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn