Maison >Java >javaDidacticiel >Comment rediriger plusieurs types d'utilisateurs (étudiants, enseignants et administrateurs) vers leurs activités respectives dans une application Firebase ?
Rouge : Comment rediriger plusieurs types d'utilisateurs vers des activités respectives
Comprendre le problème
Dans une application de vote basée sur Firebase avec trois types d'utilisateurs distincts (étudiants, enseignants et administrateurs), il est nécessaire de rediriger chaque utilisateur à leur activité spécifique après la connexion. Le code actuel gère avec succès la redirection pour deux types d'utilisateurs, mais se heurte à des difficultés lorsqu'il tente d'incorporer le troisième type (admin).
Modification de la solution pour plusieurs types d'utilisateurs
Pour accueillir le troisième type d'utilisateur, la première étape consiste à modifier la structure de la base de données. Le schéma original ne s'adressait qu'à deux types d'utilisateurs. En introduisant un troisième type, la structure doit être mise à jour pour inclure un champ « type » pour chaque utilisateur. Le schéma de base de données révisé peut apparaître comme suit :
Firebase-root | --- users | --- uidOne | | | --- name: "Ed" | | | --- type: 1 | --- uidTwo | | | --- name: "Tyff" | | | --- type: 2 | --- uidThree | --- name: "Admin" | --- type: 3
Mise à jour du code
Avec la structure de base de données mise à jour en place, le code peut être ajusté pour gérer le troisième type d'utilisateur. L'extrait de code suivant montre comment récupérer la valeur « type » de l'utilisateur et le rediriger en conséquence :
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);
En implémentant ces modifications, l'application de vote peut désormais rediriger avec succès les trois types d'utilisateurs (étudiants, enseignants, et administrateurs) à 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!