Heim >Java >javaLernprogramm >Wie können Schüler, Lehrer und Administratoren nach der Firebase-Authentifizierung zu ihren jeweiligen Aktivitäten weitergeleitet werden?

Wie können Schüler, Lehrer und Administratoren nach der Firebase-Authentifizierung zu ihren jeweiligen Aktivitäten weitergeleitet werden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 18:02:10750Durchsuche

How to Redirect Students, Teachers, and Admins to Their Respective Activities After Firebase Authentication?

Mehrbenutzerumleitung in einer Firebase-Abstimmungs-App implementieren

Im Kontext einer Firebase-basierten Abstimmungsanwendung fragen Sie sich, wie Sie drei verschiedene Benutzertypen umleiten können (SCHÜLER, LEHRER und ADMINISTREN) nach der Anmeldung auf ihre jeweiligen Aktivitäten zugreifen. Hier ist eine modifizierte Version Ihres Codes, um dieser Anforderung gerecht zu werden:

mAuthListener = new FirebaseAuth.AuthStateListener() {
  @Override
  public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
    FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

    if (firebaseUser != null) {
      String uid = firebaseUser.getUid();
      DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
      DatabaseReference usersRef = rootRef.child("users").child(uid);

      ValueEventListener userListener = new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
          // Assert that the DataSnapshot is valid
          if (!dataSnapshot.exists()) {
            Log.e(TAG, "Error: DataSnapshot not found");
            return;
          }

          // Check the user type and redirect accordingly
          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.e(TAG, databaseError.getMessage());
        }
      };

      usersRef.addListenerForSingleValueEvent(userListener);
    }
  }
};

Wichtige Änderungen:

  • Die uidRef wurde aktualisiert, um auf die Benutzer zu verweisen Knoten unter dem Firebase-Stamm.
  • Anstatt nur die Existenz eines Studenten zu prüfen, überprüft der Code jetzt den Typ des untergeordneten Knotens, um den zu bestimmen Benutzertyp.
  • Drei separate Bedingungen wurden hinzugefügt, um alle drei Benutzertypen zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie können Schüler, Lehrer und Administratoren nach der Firebase-Authentifizierung zu ihren jeweiligen Aktivitäten weitergeleitet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn