tutorial realtime firestore con autenticacion android firebase firebase-realtime-database firebase-authentication

android - con - firebase realtime database vs firestore



Agregue información de usuario adicional con firebase (3)

He integrado Firebase Auth con mi aplicación de Android. Digamos que un usuario tiene un correo [email protected] . Quiero agregar 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?


Debe crear otra tabla de base de datos que diga "usuario". En el inicio de sesión exitoso, regístrese por primera vez, debe 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 necesita escribir ningún código personalizado para hacer esto. Firebase ya tiene funciones que puedes usar.

Lo primero que debe hacer es asegurarse de que los usuarios tengan acceso solo a los datos que almacenan. Para hacer esto, vaya a Database/Rules de 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" } } } }

Luego, para guardar los nuevos detalles en una base de datos Firebase, haga esto:

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 my_app_user debe coincidir tanto en su código como en las reglas de Firebase; de ​​lo contrario, no persistirá.

Si todo va como se supone que debe hacerlo, debería ver los detalles en su base de datos:


Primero, cree un directorio de users en db. Luego, usando la identificación única del usuario que obtiene del proceso de authn, almacene la información del usuario en users/{userid} .

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