Maison > Java > javaDidacticiel > Comment rediriger plusieurs types d'utilisateurs (étudiants, enseignants et administrateurs) vers des activités spécifiques après la connexion à Firebase ?

Comment rediriger plusieurs types d'utilisateurs (étudiants, enseignants et administrateurs) vers des activités spécifiques après la connexion à Firebase ?

Patricia Arquette
Libérer: 2024-12-22 02:04:13
original
764 Les gens l'ont consulté

How to Redirect Multiple User Types (Students, Teachers, and Admins) to Specific Activities After Firebase Login?

Redirection de plusieurs types d'utilisateurs vers des activités spécifiques

Une application en cours de développement sur Firebase nécessitait de rediriger trois types d'utilisateurs vers leurs activités respectives après la connexion. L'application redirigeait déjà avec succès deux types d'utilisateurs, à savoir les étudiants et les enseignants, avec le code suivant :

mAuthListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        if (mAuth.getCurrentUser() != null) {
            String uid = mAuth.getInstance().getCurrentUser().getUid();
            DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
            uidRef = rootRef.child("STUDENTS").child(uid);
            ValueEventListener valueEventListener = new ValueEventListener() {
                @Override
                public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()) {
                        startActivity(new Intent(MainActivity.this, student.class));
                    } else {
                        startActivity(new Intent(MainActivity.this, teacher.class));
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            };
            uidRef.addListenerForSingleValueEvent(valueEventListener);
        } else {
            Log.d("TAG", "firebaseUser is null");
        }
    }
};
Copier après la connexion

Cependant, la confusion est apparue lorsqu'est venu le temps d'ajouter un troisième type d'utilisateur, les administrateurs (admins), et les rediriger vers leur activité spécifique.

La solution à ce problème impliquait de modifier la structure de la base de données pour inclure le troisième type d'utilisateur et d'ajouter un écouteur pour vérifier l'attribut "Type" de l'utilisateur node.

Structure de la base de données

Le nouveau schéma de la base de données ressemble à ceci :

Firebase-root
|
--- users
|
--- uidOne
|     |
|     --- name: "Ed"
|     |
|     --- type: 1
|
--- uidTwo
|     |
|     --- name: "Tyff"
|     |
|     --- type: 2
|
--- uidOne
|     |
|     --- name: "Admin"
|     |
|     --- type: 3
Copier après la connexion

Modification du code

Le ValueEventListener a été modifié pour vérifier le "Type " attribue et redirige les utilisateurs en fonction de sa valeur :

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("users").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.child("Type").getValue(Long.class) == 1) {
            startActivity(new Intent(MainActivity.this, student.class));
        } else if (dataSnapshot.child("TYPE").getValue(Long.class) == 2) {
            startActivity(new Intent(MainActivity.this, teacher.class));
        } else if (dataSnapshot.child("TYPE").getValue(Long.class) == 3) {
            startActivity(new Intent(MainActivity.this, admin.class));
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
Copier après la connexion

Avec ces modifications, l'application redirige avec succès les trois les types d'utilisateurs à leurs activités respectives après la connexion.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal