Heim >Java >javaLernprogramm >Wie leite ich mehrere Benutzertypen (Schüler, Lehrer und Administratoren) nach der Firebase-Anmeldung zu bestimmten Aktivitäten um?

Wie leite ich mehrere Benutzertypen (Schüler, Lehrer und Administratoren) nach der Firebase-Anmeldung zu bestimmten Aktivitäten um?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-22 02:04:13807Durchsuche

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

Mehrere Benutzertypen auf bestimmte Aktivitäten umleiten

Eine auf Firebase entwickelte App erforderte die Umleitung von drei Benutzertypen nach der Anmeldung zu ihren jeweiligen Aktivitäten. Die App leitete bereits zwei Benutzertypen, nämlich Schüler und Lehrer, erfolgreich mit dem folgenden Code um:

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

Allerdings kam es zu Verwirrung, als es an der Zeit war, einen dritten Benutzertyp hinzuzufügen, Administratoren (Administratoren). und sie zu ihrer spezifischen Aktivität umleiten.

Die Lösung für dieses Problem bestand darin, die Datenbankstruktur so zu ändern, dass sie den dritten Benutzertyp einbezog, und einen Listener hinzuzufügen, um das Attribut „Typ“ des Benutzers zu überprüfen Knoten.

Datenbankstruktur

Das neue Datenbankschema sieht folgendermaßen aus:

Firebase-root
|
--- users
|
--- uidOne
|     |
|     --- name: "Ed"
|     |
|     --- type: 1
|
--- uidTwo
|     |
|     --- name: "Tyff"
|     |
|     --- type: 2
|
--- uidOne
|     |
|     --- name: "Admin"
|     |
|     --- type: 3

Codeänderung

Der ValueEventListener wurde geändert, um den „Type " Benutzer basierend auf ihrem Wert zuordnen und umleiten:

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);

Mit diesen Änderungen leitet die App die drei Benutzertypen erfolgreich weiter ihre jeweiligen Aktivitäten nach der Anmeldung.

Das obige ist der detaillierte Inhalt vonWie leite ich mehrere Benutzertypen (Schüler, Lehrer und Administratoren) nach der Firebase-Anmeldung zu bestimmten Aktivitäten um?. 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