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?
- ¿Cómo deslizar para borrar en RecyclerView?
- Autenticación de la API de Android Firebase Rest
- ¿Cómo usar firebase con ViewPager y FragmentPagerAdapter?
- Configuración del valor de propiedad Singleton en el Listado de Firebase
- Cargando más elementos en el usuario desplazarse con FirebaseIndexRecyclerAdapter
- ¿Cómo puedo solucionar el error de Android Firebase "Default FirebaseApp no se inicializa en este proceso"?
- Error "java.lang.StackOverflowError:" al intentar guardar el objeto en base de datos Firebase
- Firebase Storage - StorageReference.getFile () se bloquea cuando el dispositivo está desconectado
- FirebaseRecyclerAdapter con vista vacía
- Crear usuario en la base de datos después de Firebase Auth (android)
- FirebaseRecyclerAdapter no actualiza los índices de elementos cuando se eliminan los datos
- ¿Cómo se incluye un nombre de usuario cuando se almacena el correo electrónico y la contraseña utilizando Firebase (BaaS) en una aplicación para Android?
- ¿Qué se entiende por Listener con escopo de actividad en android?
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:
- RecyclerView LinearLayoutManager computeVerticalScrollOffset () no devuelve el valor correcto
- Borde de diseño en forma cuadrada con bordes interiores redondos