Rumah > Java > javaTutorial > Bagaimana untuk Mengubah Hala Berbilang Jenis Pengguna (Pelajar, Guru dan Pentadbir) kepada Aktiviti Tertentu Selepas Log Masuk Firebase?

Bagaimana untuk Mengubah Hala Berbilang Jenis Pengguna (Pelajar, Guru dan Pentadbir) kepada Aktiviti Tertentu Selepas Log Masuk Firebase?

Patricia Arquette
Lepaskan: 2024-12-22 02:04:13
asal
765 orang telah melayarinya

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

Mengubah Hala Berbilang Jenis Pengguna ke Aktiviti Tertentu

Apl yang dibangunkan di Firebase memerlukan mengubah hala tiga jenis pengguna ke aktiviti masing-masing selepas log masuk. Apl itu telah berjaya mengubah hala dua jenis pengguna, iaitu pelajar dan guru, dengan kod berikut:

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");
        }
    }
};
Salin selepas log masuk

Namun, kekeliruan timbul apabila tiba masanya untuk menambah jenis pengguna ketiga, pentadbir (pentadbir), dan ubah hala mereka ke aktiviti khusus mereka.

Penyelesaian kepada isu ini melibatkan pengubahsuaian struktur pangkalan data untuk memasukkan jenis pengguna ketiga dan menambah pendengar untuk menyemak "Jenis" atribut nod pengguna.

Struktur Pangkalan Data

Skema pangkalan data baharu kelihatan seperti ini:

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

Pengubahsuaian Kod

ValueEventListener telah diubah suai kepada semak atribut "Jenis" dan ubah hala pengguna berdasarkannya value:

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);
Salin selepas log masuk

Dengan perubahan ini, apl berjaya mengubah hala ketiga-tiga jenis pengguna ke aktiviti masing-masing selepas log masuk.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Hala Berbilang Jenis Pengguna (Pelajar, Guru dan Pentadbir) kepada Aktiviti Tertentu Selepas Log Masuk Firebase?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan