Red: 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 (enseignants, et admis se connecter. Le code actuel gère avec succès la redirection de deux types d'utilisateurs, mais fait face à des défis lors de la tentative 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 d'origine ne s'adresse 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 la 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 les 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 mettant en œuvre ces modifications, l'application de vote peut désormais rediriger avec succès les trois types d'utilisateurs (étudiants, enseignants et administrateurs) vers leurs activités respectives après la connexion.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3