Componente Auth con Google en Angular

Resumen

Construir un componente de autenticación con Google en Angular y Firebase es el primer paso para levantar un chat funcional. Aquí verás cómo estructurar el componente Auth, qué hace cada parte del código y cómo apoyarte en agentes de IA para acelerar el proceso.

Qué hace el componente Auth en Angular

El componente Auth gestiona el login con Google usando Firebase. Su rol es mostrar una tarjeta de inicio de sesión, validar al usuario y, si todo sale bien, redirigirlo al chat.

En la parte del template tienes una tarjeta con un SVG del logo de Google. Al hacer clic, se dispara la autenticación y se maneja el estado de carga y los errores. Si el usuario ya está logueado, la app lo lleva directo al chat sin pasar por la pantalla de login [01:30].

¿Qué es el componente Auth en Angular? Es el módulo que gestiona el inicio de sesión con Google a través de Firebase, valida al usuario y redirige al chat cuando la autenticación es exitosa.

Por qué importan las nuevas estructuras de control desde Angular 17

Desde Angular 17, las directivas tradicionales como *ngIf y *ngFor fueron reemplazadas por estructuras de control nativas muy parecidas a la sintaxis de JavaScript. Esto hace el template más legible y cercano al lenguaje base.

En este componente las usamos para mostrar u ocultar el botón de login según el estado de autenticación, y para deshabilitarlo mientras se procesa la petición.

Cómo se estructura el controller del componente Auth

El controller en TypeScript inyecta el servicio de autenticación, que renombramos a AuthService para evitar colisiones de nombres con la clase Auth del propio componente [02:15].

Dentro del controller hay dos bloques comentados que se activarán cuando el servicio esté implementado:

  • La llamada a loginWithGoogle() del AuthService.
  • La suscripción al observable de estado de autenticación, que redirige al chat si el usuario ya inició sesión.

Mientras tanto, el método principal funciona con una simulación de usuario para validar el flujo visual antes de conectar Firebase.

Cómo funciona el método iniciar sesión con Google

El método iniciarSesionConGoogle sigue un patrón claro de try / catch / finally:

  1. Limpia errores previos y pone la bandera autenticando en true para deshabilitar el botón.
  2. Llama al AuthService para hacer el login con Google.
  3. Si recibe un usuario válido, navega a la ruta /chat.
  4. Si no obtiene usuario o se cierra el pop up, muestra el error correspondiente.
  5. En el finally, vuelve autenticando a false para reactivar el botón y detener la animación de loading.

Este patrón te asegura que la interfaz nunca queda bloqueada, sin importar si el login fue exitoso o falló.

¿Qué pasa si el usuario cierra el pop up de Google? El bloque catch captura ese caso como un error específico, muestra el mensaje al usuario y el finally reactiva el botón para que pueda intentarlo de nuevo.

Cómo levantar la aplicación Angular en localhost

Para probar el componente ejecuta npm start en la terminal. Ese script corre internamente ng serve y levanta la app en el puerto 4200, que es el puerto por defecto de Angular [05:20].

Al abrir localhost:4200 en el navegador verás la pantalla de login con la explicación de la app. Al hacer clic en Continuar con Google, en esta etapa la simulación te redirige al chat. Cuando integres el AuthService real, se abrirá el pop up de Google y la sesión quedará guardada en Firebase.

Cómo usar agentes de IA para generar componentes en Angular

Un enfoque moderno para acelerar el desarrollo es apoyarte en agentes de inteligencia artificial como los que ofrece Copilot. Si tu editor no tiene agente activo, puedes seleccionar un modelo y pedirle que genere el componente directamente.

El flujo recomendado es:

  • Arrastrar la carpeta del componente que ya creaste al chat del agente.
  • Pegar un prompt claro describiendo qué necesitas.
  • Iterar varias veces si el resultado no es el esperado, pasándole ejemplos de tu propio código.

En los recursos del curso vas a encontrar una carpeta prompts con un archivo TXT listo para generar un componente muy similar al que construimos a mano [07:10]. La parte del CSS, que suele ser la más tediosa, se resuelve casi sola con esta técnica.

¿Cuándo conviene usar un agente de IA en lugar de escribir el código a mano? Cuando ya tienes claro el patrón del componente y quieres acelerar tareas repetitivas como estructura de archivos, estilos o boilerplate. Siempre revisa el resultado antes de integrarlo.

Con esto ya tienes el primer gran bloque del proyecto listo. El siguiente paso es construir el componente de chat y luego conectar los servicios para que todo funcione en conjunto. ¿Qué prompt usarías tú para generar este componente con IA? Cuéntame en los comentarios.