Red: How to Redirect Multiple User Types to Respective Activities
Understanding the Problem
In a Firebase-based voting app with three distinct user types (students, teachers, and admins), there's a need to redirect each user to their specific activity after login. The current code successfully manages the redirection for two user types, but faces challenges when attempting to incorporate the third type (admin).
Modifying the Solution for Multiple User Types
To accommodate the third user type, the first step is to modify the database structure. The original schema only catered to two types of users. By introducing a third type, the structure must be updated to include a "type" field for each user. The revised database schema might appear as follows:
Firebase-root | --- users | --- uidOne | | | --- name: "Ed" | | | --- type: 1 | --- uidTwo | | | --- name: "Tyff" | | | --- type: 2 | --- uidThree | --- name: "Admin" | --- type: 3
Updating the Code
With the updated database structure in place, the code can be adjusted to handle the third user type. The following code snippet demonstrates how to retrieve the user's "type" value and redirect them accordingly:
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);
By implementing these changes, the voting app can now successfully redirect all three types of users (students, teachers, and admins) to their respective activities after login.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3