Configura autenticación en Firebase con confianza: habilita email y Google, crea usuarios en JavaScript y aplica verificación por correo para proteger el acceso. Aquí verás el flujo completo, buenas prácticas y el uso de métodos clave como createUserWithEmailAndPassword, updateProfile y sendEmailVerification.
¿Cómo habilitar los proveedores de autenticación en Firebase?
Para iniciar, se activan los proveedores desde la consola de autenticación. Se habilita correo electrónico y contraseña y también Google. Se confirma que ambos queden en estado habilitado. Además, se valida que ya exista un correo de asistencia y el nombre del proyecto.
Abrir la consola de autenticación y ubicar proveedores de inicio de sesión.
Habilitar correo electrónico y contraseña. Guardar.
Habilitar Google. Guardar.
Confirmar estado “habilitada”.
Opcional no usado: enlace mágico al correo para autenticación sin contraseña.
Clave a recordar: para este proyecto se usará email y contraseña, solicitando siempre credenciales al usuario.
¿Cómo crear usuarios con email y password en JavaScript?
Se trabaja en un módulo de autenticación con una clase en JavaScript que expone funciones para crear cuenta y autenticar con email y password. Se usa la librería de Firebase: firebase.auth() provee métodos para gestionar usuarios y sesiones. El registro devuelve una promesa que se maneja de forma asíncrona.
Servicio usado: Firebase Authentication con firebase.auth().
Método principal: crear usuario con createUserWithEmailAndPassword(email, password).
Flujo: crear usuario, actualizar perfil con displayName, enviar email de verificación, hacer sign out, y notificar con Materialize.
¿Qué hace createUserWithEmailAndPassword?
Crea un usuario con email y contraseña y retorna un resultado con el usuario autenticado. Luego se actualiza el displayName con updateProfile y se envía verificación con sendEmailVerification configurando una URL de continuación a tu app (por ejemplo, localhost:3000) para mejorar la experiencia.
// En el módulo/clase de autenticaciónfunctioncrearCuentaEmailPassword(email, password, nombres){ firebase.auth().createUserWithEmailAndPassword(email, password).then((result)=>{return result.user.updateProfile({displayName: nombres }).then(()=>{const configuracion ={url:'http://localhost:3000'};return result.user.sendEmailVerification(configuracion);}).then(()=>{return firebase.auth().signOut();}).then(()=>{M.toast({html:'Bienvenido. Revisa tu correo y verifica tu cuenta.',displayLength:4000});// Cerrar ventana/modal si aplica.});}).catch((error)=>{console.error(error);M.toast({html: error.message,displayLength:4000});});}
¿Cómo capturar errores y notificar?
Se capturan errores en el catch, se imprime en consola y se muestra al usuario con Materialize usando error.message durante 4 segundos. Mensajes breves y claros mejoran la guía del usuario.
¿Qué buenas prácticas y controles se aplican tras el registro?
En autenticación solo se almacenan: email, password, URL de foto y nombre (displayName). Datos adicionales como número de celular o fecha de nacimiento deben ir en la base de datos, relacionados por el identificador único (UID) que crea Firebase.
Actualizar el nombre con updateProfile para mostrarlo en la app.
Enviar verificación con sendEmailVerification y configurar botón de continuar hacia tu sitio.
Forzar logout con signOut tras registro para impedir acceso sin verificar.
Mostrar un mensaje de bienvenida y recordar la verificación por correo.
Cerrar la ventana/modal después del mensaje.
Conexión con la interfaz: el botón Registrarse del controller debe instanciar la clase de autenticación y llamar al método que crea la cuenta, pasando email, password y nombres en ese orden.
// En el controllerdocument.getElementById('btn-registrarse').addEventListener('click',()=>{const email =/* obtener del formulario */;const password =/* obtener del formulario */;const nombres =/* obtener del formulario */;const auth =newAutenticacion(); auth.crearCuentaEmailPassword(email, password, nombres);});
¿Tienes dudas sobre el flujo o quieres compartir cómo gestionas la verificación por correo en tu proyecto? Comenta y conversemos soluciones.
Configura autenticación en Firebase con confianza: habilita email y Google, crea usuarios en JavaScript y aplica verificación por correo para proteger el acceso. Aquí verás el flujo completo, buenas prácticas y el uso de métodos clave como createUserWithEmailAndPassword, updateProfile y sendEmailVerification.
¿Cómo habilitar los proveedores de autenticación en Firebase?
Para iniciar, se activan los proveedores desde la consola de autenticación. Se habilita correo electrónico y contraseña y también Google. Se confirma que ambos queden en estado habilitado. Además, se valida que ya exista un correo de asistencia y el nombre del proyecto.
Abrir la consola de autenticación y ubicar proveedores de inicio de sesión.
Habilitar correo electrónico y contraseña. Guardar.
Habilitar Google. Guardar.
Confirmar estado “habilitada”.
Opcional no usado: enlace mágico al correo para autenticación sin contraseña.
Clave a recordar: para este proyecto se usará email y contraseña, solicitando siempre credenciales al usuario.
¿Cómo crear usuarios con email y password en JavaScript?
Se trabaja en un módulo de autenticación con una clase en JavaScript que expone funciones para crear cuenta y autenticar con email y password. Se usa la librería de Firebase: firebase.auth() provee métodos para gestionar usuarios y sesiones. El registro devuelve una promesa que se maneja de forma asíncrona.
Servicio usado: Firebase Authentication con firebase.auth().
Método principal: crear usuario con createUserWithEmailAndPassword(email, password).
Flujo: crear usuario, actualizar perfil con displayName, enviar email de verificación, hacer sign out, y notificar con Materialize.
¿Qué hace createUserWithEmailAndPassword?
Crea un usuario con email y contraseña y retorna un resultado con el usuario autenticado. Luego se actualiza el displayName con updateProfile y se envía verificación con sendEmailVerification configurando una URL de continuación a tu app (por ejemplo, localhost:3000) para mejorar la experiencia.
// En el módulo/clase de autenticación
function crearCuentaEmailPassword(email, password, nombres) {
firebase.auth()
.createUserWithEmailAndPassword(email, password)
.then((result) => {
return result.user.updateProfile({ displayName: nombres })
.then(() => {
const configuracion = { url: 'http://localhost:3000' };
return result.user.sendEmailVerification(configuracion);
})
.then(() => {
return firebase.auth().signOut();
})
.then(() => {
M.toast({ html: 'Bienvenido. Revisa tu correo y verifica tu cuenta.', displayLength: 4000 });
// Cerrar ventana/modal si aplica.
});
})
.catch((error) => {
console.error(error);
M.toast({ html: error.message, displayLength: 4000 });
});
}
¿Cómo capturar errores y notificar?
Se capturan errores en el catch, se imprime en consola y se muestra al usuario con Materialize usando error.message durante 4 segundos. Mensajes breves y claros mejoran la guía del usuario.
¿Qué buenas prácticas y controles se aplican tras el registro?
En autenticación solo se almacenan: email, password, URL de foto y nombre (displayName). Datos adicionales como número de celular o fecha de nacimiento deben ir en la base de datos, relacionados por el identificador único (UID) que crea Firebase.
Actualizar el nombre con updateProfile para mostrarlo en la app.
Enviar verificación con sendEmailVerification y configurar botón de continuar hacia tu sitio.
Forzar logout con signOut tras registro para impedir acceso sin verificar.
Mostrar un mensaje de bienvenida y recordar la verificación por correo.
Cerrar la ventana/modal después del mensaje.
Conexión con la interfaz: el botón Registrarse del controller debe instanciar la clase de autenticación y llamar al método que crea la cuenta, pasando email, password y nombres en ese orden.
// En el controller
document.getElementById('btn-registrarse').addEventListener('click', () => {
const email = /* obtener del formulario */;
const password = /* obtener del formulario */;
const nombres = /* obtener del formulario */;
const auth = new Autenticacion();
auth.crearCuentaEmailPassword(email, password, nombres);
});
¿Tienes dudas sobre el flujo o quieres compartir cómo gestionas la verificación por correo en tu proyecto? Comenta y conversemos soluciones.
Después de autenticar a los usuarios con email y contraseña (firebase.auth().createUserWithEmailAndPassword(email, password)) podemos añadir el resto de su información ya que este método devuelve una promesa con el usuario recién creado y un método updateProfile para actualizar los datos 👍.
Si en vez de utilizar email y contraseña utilizamos Google Accounts o cualquier otra autenticación por redes sociales nos ahorramos esta actualización de los datos del usuario porque Firebase añade automáticamente los datos de cada cuenta al registro 👌.
Cuando el docente lleva en el paso a paso al estudiante le es mas facil a estudiantado asimilar los coniminetos inicialmente, pero cuando se omiten ciertos detalles o puntos...se pierde el hilo rapidamente y puede volverse en desanimo por que no dan las cosas como en el curso
Si estás desarrollando un proyecto y necesitas algo puntual, no es útil buscar en éste curso, más bien búscalo en san Google.
Además que me habría gustado iniciar desde cero no con archivos ya predefinidos.
Siento que estoy muy perdido con este curso. Usualmente los profesores de Platzi explican dando muy buenas bases pero este ya es el segundo curso que veo que se saltan muchos temas esenciales para poder realmente entender como funciona. Considero que los profesores aquí nos deben dar ese valor agregado que no te da el poder investigar por cuenta propia o un tutorial gratis en youtube. Espero lo vean como una oportunidad de mejora. Prefiero tener menos cursos con tal de mantener la excelente calidad que tener muchos cursos y se pierda la calidad de la que ya nos tiene acostumbrados la plataforma.
Es dificil seguir el paso a paso a este curso puesto que en la actualidad ya hay otras opciones y pues no sabes cual elegir, que malo este curso necesita una actualizacion urgente y revise comentarios anteriores y los reclamos son ya de una año atras.
Cuando Actualizaran el curso?
¿Qué pasa cuando intentamos crear un usuario con email y contraseña pero el usuario ya esta creado? ¿Firebase devuelve un error o autenticamos automáticamente a los usuarios? 🤔