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.
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 👌.
Entiendo, gracias
mirenlo a 1.25x
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
Totalmente de acuerdo contigo, me ha resultado infinitamente más útil buscar tutoriales en Google que seguir este curso :(
He comprado Platzy porque queria un curso completo de firebase y me encontre con un curso desactualizado :(
Muy buen video pero por favor desinstala el efecto de fuego 😂👌🔥
La verdad, le entiendo mucho mejor a este curso de Fazt, te lleva de la mano, paso a paso y esta mucho mas ordenado y entendible! Gracias por compartirlo!
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.
Saludos!
Hasta aquí he llegaso, siento que la versión de firebase esta desactualizada,.
x2
Si, es de hace dos años o más el curso.
Temia por lo mismo pero viendo que esto es un comentario de hace 1 año, se que evidentemente me metera en mas retrabajo ahora.
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?
Hola Geq, entiendo tu problema. Cuando se trabaja en tecnología es complicado tener cursos actualizados, pero voy a pasar tu inquietud a ver si hay algun curso actualizado en el futuro.
Efectivamente. Hay planes de actualizar en un futuro cercano este 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? 🤔
Hola, te devuelve Error code: auth/email-already-in-use
Puedes revisar todos los códigos de respuesta que existen
Documentación
Saludos
Hola gracias @krsb1. @juandc aqui tambien puedes encontrar los codigo de error de forma consolidada
SUUUUUPER recomendado, mirar los videos en pantalla divida junto a la documentación de Firebase. Estaba muy perdido con los videos, pero viendo la documentación, todo tiene coherencia y eso me hace muy feliz y me libra de los malos pensamientos. amen.
Estoy de acuerdo, Firebase se ha actualizado pero las funciones son prácticamente las mismas. se facilita mucho así.
Instalar Global:
npm install gulp-cli -g
Instalar dentro del proyecto
npm install gulp -D
Ejecutar:
gulp
Gracias!
1.75x
es increíble que a 1.5x se escuche como si hablara normal XD
Que nervioso me pone el fueguito que aparece cuando escribe.
En resumen, lo que hicimos fue, tomar los datos del usuario, llamar al método de autenticación y este método lo que hacer es decirle a Firebase que registre al usuario, le asigne un nombre, le mande un correo de verificación y lo desloguee ya que por defecto le hace login
Para crear un nuevo usuario: .createUserWithEmailAndPassword(email, password, nombres)
Para enviar un correo de verificación: .sendEmailVerification(configuracion)
Para cerrar sesión: .signOut()
Estaba contento con esta clase, ahora veo todos nos perdemos por solo llenar código en archivos predefinidos sin entender realmente como funciona. El problema no es ese, más bien el que ahora todo sea distinto y que no esté actualizado el curso deberas es el problema y desmotiva mucho. Prefiero tomar un curso de youtube, que triste.
Van 2 platzi, este y el curso profesional de javascript que tenia el mismo problema, aparecias con archivos de la nada sin entender porqué.
El curso esta desactualizado, en la nuve esta google 9 sin embargo toda la explicación es para google 8. podrían publicar videos actualizados?. no puedo seguir el curso pór que me extravio.
¡Hola! 😄
Muchas gracias por tus comentarios, los tendremos en cuenta para futuras versiones del curso.