rojo: cómo redirigir múltiples tipos de usuarios a las actividades respectivas
Comprender el problema
en una aplicación de votación basada en la base de fuego con tres tipos de usuarios distintos (estudiantes, maestros, y admins), hay necesidad de ser necesariamente que el usuario sea necesario. acceso. El código actual administra con éxito la redirección para dos tipos de usuarios, pero enfrenta desafíos al intentar incorporar el tercer tipo (admin).
modificando la solución para múltiples tipos de usuarios
para acomodar el tercer tipo de usuario, el primer paso es modificar la estructura de la base de datos. El esquema original solo atendía a dos tipos de usuarios. Al introducir un tercer tipo, la estructura debe actualizarse para incluir un campo de "tipo" para cada usuario. El esquema de la base de datos revisado puede aparecer como sigue:
Firebase-root | --- users | --- uidOne | | | --- name: "Ed" | | | --- type: 1 | --- uidTwo | | | --- name: "Tyff" | | | --- type: 2 | --- uidThree | --- name: "Admin" | --- type: 3
Actualización del código
Con la estructura de la base de datos actualizada en su lugar, el código se puede ajustar para manejar el tercer tipo de usuario. El siguiente fragmento de código demuestra cómo recuperar el valor de "tipo" del usuario y redirigirlos en consecuencia:
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);
implementando estos cambios, la aplicación de votación ahora puede redirigir con éxito los tres tipos de usuarios (estudiantes, maestros y administradores) a sus respectivas actividades después del inicio de sesión.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3