Rumah >Java >javaTutorial >Bagaimana untuk Mengubah hala Pelajar, Guru dan Pentadbir ke Aktiviti Masing-masing Selepas Pengesahan Firebase?

Bagaimana untuk Mengubah hala Pelajar, Guru dan Pentadbir ke Aktiviti Masing-masing Selepas Pengesahan Firebase?

Linda Hamilton
Linda Hamiltonasal
2024-12-10 18:02:10703semak imbas

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

Melaksanakan Pengalihan Berbilang Pengguna dalam Apl Pengundian Firebase

Dalam konteks aplikasi pengundian berasaskan Firebase, anda tertanya-tanya bagaimana untuk mengubah hala tiga jenis pengguna yang berbeza (MURID, GURU, dan ADMIN) ke aktiviti masing-masing selepas log masuk. Berikut ialah versi kod anda yang diubah suai untuk memenuhi keperluan ini:

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

Perubahan Utama:

  • UidRef telah dikemas kini untuk menunjuk kepada pengguna nod di bawah akar Firebase.
  • Daripada menyemak hanya kewujudan pelajar, kod kini menyemak jenis nod anak untuk menentukan jenis pengguna.
  • Tiga syarat berasingan telah ditambahkan untuk mengendalikan ketiga-tiga jenis pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah hala Pelajar, Guru dan Pentadbir ke Aktiviti Masing-masing Selepas Pengesahan Firebase?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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