Impulsa una experiencia de inicio de sesión fluida con Firebase y Google. Verás cómo crear el proveedor, usar pop up con una promesa, actualizar el avatar del usuario con photoURL, mostrar su displayName y manejar errores, manteniendo una UX clara y directa.
¿Cómo autenticar con Google en Firebase con pop up?
Para habilitar el método de inicio de sesión con Google desde tu código, se trabaja en la clase de autenticación con una función llamada outCuentaGoogle. La idea central: definir el proveedor de autenticación, invocar signInWithPopup, y procesar el resultado.
¿Cómo definir el proveedor de autenticación?
Crear una constante para el proveedor de Google.
Mantener una única fuente de configuración del proveedor.
// Clase de autenticaciónclassAutenticacion{outCuentaGoogle(){const proveedor =newfirebase.auth.GoogleAuthProvider();// ...}}
¿Cómo iniciar sesión con signInWithPopup?
Usar firebase.auth().signInWithPopup(proveedor) para abrir una ventana emergente.
Evitar sacar al usuario de la app para conservar una mejor experiencia.
Recordar que regresa una promesa.
outCuentaGoogle(){const proveedor =newfirebase.auth.GoogleAuthProvider(); firebase.auth().signInWithPopup(proveedor).then((result)=>{const user = result.user;// Actualizar avatar con la foto de su cuenta de Google.const avatarUrl = user.photoURL;actualizarAvatar(avatarUrl);// Cerrar el modal y mostrar mensaje de bienvenida con su nombre.cerrarModal();mostrarMensaje(`Bienvenido ${user.displayName}`);}).catch((error)=>{console.error(error);mostrarMensaje('Error al autenticarse con Google.');});}
pop up: ventana emergente para ingresar credenciales.
Proveedor de autenticación: GoogleAuthProvider define el servicio a usar.
Promesa: éxito con then, error con catch.
¿Qué datos del usuario usar para personalizar la experiencia?
Tras autenticarse, el resultado entrega el user con datos clave. Google valida la cuenta y gestiona las credenciales, lo que simplifica el flujo y reduce responsabilidad de manejo de contraseñas.
photoURL: URL de la imagen de perfil para actualizar el avatar.
displayName: nombre visible para el mensaje de bienvenida.
Beneficio UX: ingresar es rápido y familiar para el usuario.
¿Cómo manejar errores de autenticación con Google?
Registrar detalles técnicos con console.error para los developers.
Notificar al usuario con un mensaje claro.
firebase.auth().signInWithPopup(proveedor).then(/* éxito */).catch((error)=>{console.error('Error al autenticarse con Google:', error);mostrarMensaje('Error al autenticarse con Google.');});
¿Cómo conectar el controlador y el evento clic del ícono de Google?
En el controlador, crea la instancia de la clase de autenticación y escucha el clic en el ícono de Google. Al hacer clic, se invoca outCuentaGoogle. Luego, prueba el flujo: abrir pop up, elegir la cuenta, ver el saludo y el avatar actualizado.
// Controladorconst authObj =newAutenticacion();// Botón o ícono de Google en la interfazconst iconoGoogle =document.getElementById('icono-google');iconoGoogle.addEventListener('click',()=>{ authObj.outCuentaGoogle();});
Instancia de la clase: authObj para centralizar la lógica.
Evento clic: dispara el inicio de sesión con Google.
Resultado esperado: saludo con displayName y avatar con photoURL.
¿Tienes dudas sobre el flujo o quieres compartir tu implementación? Escribe en los comentarios y conversemos sobre mejoras de UX y manejo de estado tras autenticación.
Práctico y sencillo el proceso de autentificación con google
Concuerdo contigo.
que bonito es lo bonito!
++NOTA IMPORTANTE++: a los que usen navegadores nuevos como BRAVE, este ejemplo del popup no les funcionará, sin embargo si usan **CHROME **podrán seguir tranquilamente con el ejemplo.
tampoco funciona en EDGE :(
Solo hay que desactivar el brave shields para el proyecto y funciona normal. Eso es en la cara del león al final de la barra de url.
hola alguien podría orientarme con esta parte? me da el siguiente error al querrer autentifcarme con gloolge:
lo {code:"auth/unauthorized-domain",message:"This domain (127.0.0.1) is not authorized to run t…se console -> Auth section -> Sign in method tab."}
por cierto trabajo con el web server from chrome
Hola, a mí también me dio ese error. Simplemente debes cambiar la dirección IP local a "localhost". Un saludo
Pues por lo que leo, dice que el dominio (127.0.0.1) es decir, el local host, no esta autorizado.
Si tienen errores deben cambiar a localhost de esta manera
Que bien, gracias por el dato
¿Cómo cambiaste de puerto? :D
Cuando abrimos la app en un celular creo que se ve mejor el redireccionamiento para la autenticación. Después en pantallas de escritorio ahí si los Popups.
Muy buena clase, pero no me corre la app, ya cheque el código en varias ocasiones pero tengo problemas
¿Podrías darnos las capturas de los errores que te suceden al usar la aplicación?
que genail es firebase
actualmente ya no permite usar localhost como dominio en google y fb, como se puede solucionar eso?
Hola puedes usar un programa que te permite hacer un tunnel una opción puede ser https://ngrok.com/ este lo ejecutas y crea una url que puedes poner en FB o Google, cada vez que cierres e inicies ngrok te genera una nueva url que debes configurar en estos dos servicios.
tengo e mismo problema como se puede solucionar
Wow, es increíble lo realmente fácil que fue autenticarse con Google usando firebase... en un servidor backend probablemente tuvieras que haber descargado el SDK y hacer más configuraciones...
Por ahora todo bien. Excelente curso
Tengo un problema, una vez hago la autenticación con google, y despues hago el SignOut, como puedo hacer para que se borren las credenciales ya ingresadas anteriormente, ya que se queda grabado en memoria y ya al abrir la ventana emergente inmediatamente me hace el SignIn, sin pedirme la contraseña ni nada, ya ingresa de una con mis credenciales a pesar de que ya hice el signOut previamente!
Tienes que validar si efectivamente el signOut se esta haciendo. Y tambien deberias ver si es talvez un problema de tu aplicacion al hacer el signIn. Revisa que valores esta tomando esa funcion del sigin.
Hola a todos! 😊 Quizá alguien pueda ayudarme con una consulta. La única o mejor forma de utilizar firebase en mi proyecto es agregando los scripts a mi html principal? (Estoy trabajando con JavaScript) Quisiera dejar un archivo .js con la información o lo que necesito de Firebase, pero me ha generado problemas en mi proyecto 😥 , ademas estoy utilizando webpack. Agradezco si alguien puede ayudarme.
Hola! espero que ya hayas podido resolver tu problema, firebase tiene diferentes formas de poder inyectarlas en nuestros proyectos, tantos por los CDN(osea ponerlos dentro de html) o descargar su paquete de npm firebas, la cual te da todas las utilidades que trae firebase, así puedes utilizar firebase en cualquiera de tus archivos importando firebase al archivo.
Así puedes utilizar firebase en tus proyectos de javaScript con webpack!
Alguien sabe cómo instalar el skin de fuego que le aparece al profesor en visual code?
es una extension de visual studio code, se llama Power Mode
Gracias
oye a mi no me abre la ventana emergente y estoy haciendo todos los pasos
Revisa configuración del browser
y como se hace eso?
buenas noches me podrian ayudar con estos inconvenientes, ya revise mis lineas de código con las del ejercicio y están igual pero al correr la pagina web me marca varios al logearme y autenticar me con Google.
Estas son mis capturas de pantallas y lo peor es que me pasa lo mismo con lo del registro.
perdón la imagen 3 no se ve bien, la pongo nuevamente, espero me puedan ayudar
Hola esta mal escrito te falta la palabra And, EmailAndPassword
deberían hacer un paso a paso para solucionar el error....
Hola Andres, puedes enviar tu observación al team a su correo: team@platzi.com
Los comentarios y sugerencias se agradecen 👌
Hola cundo me autentico con Google me arroja una ventana que dice esté erro ...
This app is not yet configured to make OAuth requests. To do that, set up the app’s OAuth consent screen in the Google Cloud Console.
Learn more
Request Details
That’s all we know.
Hola Buenas Tardes. Una consulta, cuando intento autenticarme con google me sale este aviso. Me dice que esta aplicación aún no está configurada para realizar solicitudes de OAuth y para hacerlo debo ir a la aplicación en Google Cloud Console. Pueden orientarme a como solucionarlo?
Hola, mi cuenta de gmail ya estaba logeada. Ya lo resolvi, estuve buscando información y en la documentación mencionaba que tenia que añadir el ámbito en este caso gmail. Creo que también fue porque no estaba habilitada la Google People API. Gracias
Aqui dejo mi commit de esta clase con mi practica de NextJs
yo instale font-awesome pero la version free ahora no traen los logotipos de las redes sociales, no lo instalen si no quieren. Tampoco puse la foto de perfil porque no he construido el componente del header, yo el login y registro lo hago con paginas separadas y se puede acceder con /login o /register. Me parece mas divertido hacerlo asi :)
para los que usan visual estudio con Live Server
cambiar de 127.0.0.0 a localhost