En esta sección, aprenderemos cómo gestionar usuarios en Firebase Authentication. Esto incluye la creación, actualización y eliminación de usuarios, así como la recuperación de contraseñas y la verificación de correos electrónicos.
Conceptos Clave
- Creación de usuarios: Añadir nuevos usuarios a tu aplicación.
- Actualización de usuarios: Modificar la información de los usuarios existentes.
- Eliminación de usuarios: Eliminar usuarios de tu aplicación.
- Recuperación de contraseñas: Permitir a los usuarios restablecer sus contraseñas.
- Verificación de correos electrónicos: Confirmar la dirección de correo electrónico de los usuarios.
Creación de Usuarios
Para crear un nuevo usuario con correo electrónico y contraseña, puedes usar el método createUserWithEmailAndPassword
de Firebase Authentication.
Ejemplo de Código
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Usuario creado exitosamente var user = userCredential.user; console.log("Usuario creado:", user); }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; console.error("Error al crear usuario:", errorCode, errorMessage); });
Explicación
email
: La dirección de correo electrónico del nuevo usuario.password
: La contraseña del nuevo usuario.userCredential
: El objeto que contiene la información del usuario creado.user
: El objeto de usuario que contiene detalles como el UID (identificador único del usuario).
Actualización de Usuarios
Para actualizar la información de un usuario, puedes usar el método updateProfile
.
Ejemplo de Código
var user = firebase.auth().currentUser; user.updateProfile({ displayName: "Nombre de Usuario", photoURL: "https://example.com/jane-q-user/profile.jpg" }).then(() => { // Actualización exitosa console.log("Perfil actualizado"); }).catch((error) => { // Error al actualizar el perfil console.error("Error al actualizar perfil:", error); });
Explicación
displayName
: El nombre que se mostrará para el usuario.photoURL
: La URL de la foto de perfil del usuario.
Eliminación de Usuarios
Para eliminar un usuario, puedes usar el método delete
.
Ejemplo de Código
var user = firebase.auth().currentUser; user.delete().then(() => { // Usuario eliminado exitosamente console.log("Usuario eliminado"); }).catch((error) => { // Error al eliminar el usuario console.error("Error al eliminar usuario:", error); });
Recuperación de Contraseñas
Para permitir a los usuarios restablecer sus contraseñas, puedes usar el método sendPasswordResetEmail
.
Ejemplo de Código
var auth = firebase.auth(); var emailAddress = "[email protected]"; auth.sendPasswordResetEmail(emailAddress).then(() => { // Correo de restablecimiento de contraseña enviado console.log("Correo de restablecimiento de contraseña enviado"); }).catch((error) => { // Error al enviar el correo de restablecimiento de contraseña console.error("Error al enviar correo de restablecimiento de contraseña:", error); });
Verificación de Correos Electrónicos
Para enviar un correo de verificación a un usuario, puedes usar el método sendEmailVerification
.
Ejemplo de Código
var user = firebase.auth().currentUser; user.sendEmailVerification().then(() => { // Correo de verificación enviado console.log("Correo de verificación enviado"); }).catch((error) => { // Error al enviar el correo de verificación console.error("Error al enviar correo de verificación:", error); });
Ejercicios Prácticos
Ejercicio 1: Crear y Actualizar un Usuario
- Objetivo: Crear un nuevo usuario y actualizar su perfil.
- Instrucciones:
- Usa
createUserWithEmailAndPassword
para crear un nuevo usuario. - Usa
updateProfile
para actualizar el nombre y la foto de perfil del usuario.
- Usa
Ejercicio 2: Recuperación de Contraseña
- Objetivo: Implementar la funcionalidad de recuperación de contraseña.
- Instrucciones:
- Usa
sendPasswordResetEmail
para enviar un correo de restablecimiento de contraseña a un usuario.
- Usa
Ejercicio 3: Verificación de Correo Electrónico
- Objetivo: Implementar la funcionalidad de verificación de correo electrónico.
- Instrucciones:
- Usa
sendEmailVerification
para enviar un correo de verificación a un usuario.
- Usa
Soluciones
Solución al Ejercicio 1
// Crear un nuevo usuario firebase.auth().createUserWithEmailAndPassword("[email protected]", "password123") .then((userCredential) => { var user = userCredential.user; console.log("Usuario creado:", user); // Actualizar el perfil del usuario return user.updateProfile({ displayName: "Nuevo Usuario", photoURL: "https://example.com/new-user/profile.jpg" }); }) .then(() => { console.log("Perfil actualizado"); }) .catch((error) => { console.error("Error:", error); });
Solución al Ejercicio 2
var auth = firebase.auth(); var emailAddress = "[email protected]"; auth.sendPasswordResetEmail(emailAddress).then(() => { console.log("Correo de restablecimiento de contraseña enviado"); }).catch((error) => { console.error("Error al enviar correo de restablecimiento de contraseña:", error); });
Solución al Ejercicio 3
var user = firebase.auth().currentUser; user.sendEmailVerification().then(() => { console.log("Correo de verificación enviado"); }).catch((error) => { console.error("Error al enviar correo de verificación:", error); });
Conclusión
En esta sección, hemos aprendido cómo gestionar usuarios en Firebase Authentication. Esto incluye la creación, actualización y eliminación de usuarios, así como la recuperación de contraseñas y la verificación de correos electrónicos. Estos conceptos son fundamentales para cualquier aplicación que requiera autenticación de usuarios. En el próximo módulo, exploraremos la base de datos en tiempo real de Firebase, donde aprenderemos a leer y escribir datos de manera eficiente.
Curso de Firebase
Módulo 1: Introducción a Firebase
Módulo 2: Autenticación de Firebase
- Introducción a la autenticación de Firebase
- Autenticación por correo electrónico y contraseña
- Autenticación de redes sociales
- Gestión de usuarios
Módulo 3: Base de datos en tiempo real de Firebase
- Introducción a la base de datos en tiempo real
- Lectura y escritura de datos
- Estructura de datos y reglas de seguridad
- Capacidades sin conexión
Módulo 4: Cloud Firestore
- Introducción a Cloud Firestore
- Modelo de datos de Firestore
- Operaciones CRUD
- Consultas avanzadas
- Reglas de seguridad
Módulo 5: Almacenamiento de Firebase
- Introducción al almacenamiento de Firebase
- Subida de archivos
- Descarga de archivos
- Metadatos de archivos y seguridad
Módulo 6: Mensajería en la nube de Firebase
- Introducción a la mensajería en la nube
- Envío de notificaciones
- Manejo de notificaciones
- Características avanzadas de mensajería
Módulo 7: Análisis de Firebase
Módulo 8: Funciones de Firebase
- Introducción a las funciones de Firebase
- Escritura de funciones
- Despliegue de funciones
- Activación de funciones
Módulo 9: Monitoreo de rendimiento de Firebase
- Introducción al monitoreo de rendimiento
- Configuración del monitoreo de rendimiento
- Análisis de datos de rendimiento
Módulo 10: Laboratorio de pruebas de Firebase
- Introducción al laboratorio de pruebas de Firebase
- Ejecución de pruebas
- Análisis de resultados de pruebas