Agregar más información de usuario con firebase

He integrado firebase auth con mi aplicación Android. Digamos que un usuario tiene un correo [email protected] . Quiero agregar alguna información adicional al usuario como el nombre del usuario, la ocupación y la dirección. ¿Cómo puedo conectar la tabla de autenticación de usuario con mi aplicación de Android para hacer eso?

¿Necesito escribir alguna API para eso?

Primero crear un directorio de users en db. A continuación, utilizando el identificador único del usuario que obtiene del proceso authn, almacene la información del usuario en users/{userid} .

Para lograr esto, necesita entrar en los detalles de la base de datos de Firebase. Consulta aquí: https://firebase.google.com/docs/database/android/save-data

Tienes que crear otra tabla de base de datos, diga "usuario". En el inicio de sesión exitoso, la suscripción por primera vez tiene que crear una nueva fila en la tabla de usuario.

 public static void writeNewUser(DatabaseReference databaseReference, String userId, String name, String email, int accountType) { User user = new User(name, email, accountType); databaseReference.child("users").child(userId).setValue(user); } 

Puede consultar https://github.com/firebase/quickstart-android/tree/61f8eb53020e38b1fdc5aaeddac2379b25240f3b/database

No es necesario escribir ningún código personalizado para hacer esto. Firebase ya tiene características que puede usar.

Lo primero que debe hacer es asegurarse de que los usuarios tengan acceso sólo a los datos que almacenan. Para ello, vaya a Database/Rules y cambie sus reglas a esto:

 { "rules": { "my_app_user": { "$uid": { ".write": "auth != null && auth.uid == $uid", ".read": "auth != null && auth.uid == $uid" } } } } 

A continuación, para guardar los nuevos detalles en una base de datos de Firebase, haga lo siguiente:

  MyAppUser user = new MyAppUser(); user.setAddressTwo("address_two"); user.setPhoneOne("phone_one"); ... mDatabaseReference.child("my_app_user").child(firebaseUser.getUid()).setValue(user). addOnCompleteListener(DetailsCaptureActivity.this, new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { ... 

El nombre del niño my_app_user debe coincidir tanto en el código como en las reglas de Firebase, de lo contrario no persistirá.

Si todo sale como se supone, deberías ver los detalles en tu base de datos:

Introduzca aquí la descripción de la imagen

  • Manejando keepSynced () mientras está en segundo plano en Android y con FCM
  • Firebase para Android no funciona en mi dispositivo de prueba de repente
  • E / DynamiteModule: Error al cargar la clase del descriptor del módulo: No encontró la clase
  • ¿Cómo subir una imagen al almacenamiento de Firebase?
  • Restringir el acceso a la base de datos de Firebase a una aplicación de Android
  • ¿Sólo rellenar viewHolder con mensajes recuperados de la base de datos?
  • Notificación de Firebase sobre niño agregado / modificado
  • Inicialización de FirebaseApp en Firebase Android
  • NoClassDefFoundError: com.google.firebase.FirebaseOptions
  • Datos de carga de Firebase dinámicamente en desplazamiento
  • Integración Algolia Firebase y Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.