Gestión de Autenticación de Usuarios con Firebase
Clase 11 de 32 • Curso de Firebase 5 para Web
Contenido del curso
Consola Web de Administración
Autenticación de Usuarios
- 6

Servicios de autenticación de Firebase
06:30 min - 7

Crear usuarios con Firebase Authentication
13:12 min - 8

Autenticación de Usuarios con Firebase: Registro y Verificación de Email
15:02 min - 9

Autenticación con Google usando Firebase en aplicaciones web
06:22 min - 10

Login con Facebook en Firebase
09:47 min - 11

Gestión de Autenticación de Usuarios con Firebase
Viendo ahora - 12

Gestión de usuarios en consola Firebase
05:05 min - 13

Importar y exportar usuarios de Firebase
04:17 min
Gestión de la Base de Datos
- 14

Firestore vs Realtime Database: por qué migrar
08:36 min - 15
Comparación entre Realtime Database y Firestore de Firebase
02:11 min - 16

Habilitar Firestore en Firebase Console
09:53 min - 17

Cómo insertar datos en Firestore con validación
10:53 min - 18

Consultas en Tiempo Real con Firestore para Aplicaciones Web
15:01 min - 19

Operaciones avanzadas de Firestore
13:12 min - 20

Reglas de seguridad básicas en Firestore
08:07 min - 21

Creación y gestión de índices en Firestore para optimizar consultas
07:13 min
Almacenamiento de archivos
Hosting
Notificaciones Push
Conclusiones
Controla el estado de autenticación con confianza: aprende a leer el usuario actual, ejecutar sign out, reaccionar a cambios con el observador de Firebase y actualizar el UI con botón, avatar e inputs. Todo con código claro y seguro, sin exponer contraseñas.
¿Cómo gestionar el estado de autenticación con Firebase Auth?
Para saber si hay alguien autenticado, se usa firebase.auth().currentUser. Firebase guarda las credenciales en caché del navegador y permite leer datos del perfil, no la contraseña. Así, puedes decidir si abrir el modal de acceso o ejecutar sign out.
// Evento del botón "Iniciar sesión"
loginBtn.addEventListener('click', () => {
const user = firebase.auth().currentUser; // usuario actual
if (user) {
// Usuario autenticado: cambiar flujo a *sign out*.
loginBtn.textContent = 'Iniciar sesión';
firebase.auth().signOut() // es una promesa
.then(() => {
// Colocar avatar por defecto.
// console.log('Sign out correcto');
})
.catch((error) => {
// console.error('Error al realizar el sign out', error);
});
// Limpiar inputs de email y password.
// Abrir modal si corresponde.
} else {
// No hay usuario: abrir modal de autenticación.
// Limpiar inputs de email y password.
}
});
Puntos clave: - currentUser decide el flujo: autenticado o no autenticado. - signOut() devuelve una promesa: usa then para éxito y catch para errores. - UI consistente: botón cambia de texto y el avatar vuelve a la imagen por defecto.
¿Qué errores comunes aparecen y cómo resolverlos?
- Olvidar paréntesis en signOut(): la función no se ejecuta.
- Imprimir una variable error sin haberla definido: usa catch(error) y regístrala.
- No limpiar inputs tras sign out: deja el estado visual inconsistente.
¿Qué hace onAuthStateChanged y por qué es clave?
Firebase ofrece un observador permanente: firebase.auth().onAuthStateChanged. Cada vez que cambia el estado del usuario (inicia sesión o hace sign out), esta función se ejecuta. Así, el UI se mantiene sincronizado incluso al refrescar la página.
firebase.auth().onAuthStateChanged((user) => {
if (user) {
// Usuario autenticado.
loginBtn.textContent = 'Salir';
// Si el proveedor entregó una foto, úsala.
if (user.photoURL) {
// avatar.src = user.photoURL;
} else {
// avatar por defecto (email/password no trae *photoURL*).
}
} else {
// Usuario no autenticado.
loginBtn.textContent = 'Iniciar sesión';
// avatar por defecto.
}
});
Beneficios prácticos: - UI reactivo: el botón pasa a “Salir” al autenticarse y vuelve a “Iniciar sesión” al cerrar sesión. - Avatar correcto: si el usuario viene de Google o Facebook, existe photoURL; con email y password, se usa imagen por defecto. - Persistencia: al refrescar, Firebase valida el estado desde la caché del browser y ajusta el UI.
¿Cómo se refleja en la experiencia del usuario?
- Mensaje de bienvenida al autenticarse.
- Sign out confirma éxito y restablece el avatar por defecto.
- Al no estar autenticado, el botón abre el modal de acceso.
¿Qué habilidades y keywords refuerzas en este módulo?
Al implementar este flujo consolidas prácticas de frontend y autenticación con Firebase:
- Uso de Firebase Auth con currentUser para leer el estado.
- Manejo de promesas con then y catch en signOut().
- Patrón observador con onAuthStateChanged para UI reactivo.
- Gestión de avatar con photoURL y imagen por defecto cuando no hay foto.
- Control de UI states: cambio de texto del botón “Iniciar sesión/Salir”.
- Limpieza de inputs de email y password tras sign out.
- Buenas prácticas de consola: detección de errores y mensajes claros.
- Comprensión de caché del navegador para persistir la sesión.
¿Te gustaría ver variantes del flujo para más proveedores o mejorar los mensajes de estado? Comparte tus dudas y cuéntanos qué casos quieres cubrir.