


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"); } } };
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
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);
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Version Mac de WebStorm
Outils de développement JavaScript utiles

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire