firebase-auth-basics

Configurar Firebase Authentication con múltiples proveedores de identidad y acceso seguro a datos. Soporta correo electrónico/contraseña, número de teléfono, anónimo, proveedores federados (Google, Facebook, Twitter, GitHub, Microsoft, Apple) e integración de autenticación personalizada. Los usuarios se identifican mediante UIDs únicos con propiedades opcionales como correo electrónico, nombre para mostrar, URL de foto y estado de verificación de correo electrónico. La autenticación mediante CLI permite inicio de sesión con Google, autenticación anónima y correo electrónico/contraseña; otros proveedores requieren Firebase...

npx skills add https://github.com/firebase/skills --skill firebase-auth-basics

Prerequisites

  • Firebase Project: Created via npx -y firebase-tools@latest projects:create (see firebase-basics).
  • Firebase CLI: Installed and logged in (see firebase-basics).

Core Concepts

Firebase Authentication provides backend services, easy-to-use SDKs, and ready-made UI libraries to authenticate users to your app.

Users

A user is an entity that can sign in to your app. Each user is identified by a unique ID (uid) which is guaranteed to be unique across all providers. User properties include:

  • uid: Unique identifier.
  • email: User's email address (if available).
  • displayName: User's display name (if available).
  • photoURL: URL to user's photo (if available).
  • emailVerified: Boolean indicating if the email is verified.

Identity Providers

Firebase Auth supports multiple ways to sign in:

  • Email/Password: Basic email and password authentication.
  • Federated Identity Providers: Google, Facebook, Twitter, GitHub, Microsoft, Apple, etc.
  • Phone Number: SMS-based authentication.
  • Anonymous: Temporary guest accounts that can be linked to permanent accounts later.
  • Custom Auth: Integrate with your existing auth system.

Google Sign In is recommended as a good and secure default provider.

Tokens

When a user signs in, they receive an ID Token (JWT). This token is used to identify the user when making requests to Firebase services (Realtime Database, Cloud Storage, Firestore) or your own backend.

  • ID Token: Short-lived (1 hour), verifies identity.
  • Refresh Token: Long-lived, used to get new ID tokens.

Workflow

1. Provisioning

Option 1. Enabling Authentication via CLI

Only Google Sign In, anonymous auth, and email/password auth can be enabled via CLI. For other providers, use the Firebase Console.

Configure Firebase Authentication in firebase.json by adding an 'auth' block:

{
  "auth": {
    "providers": {
      "anonymous": true,
      "emailPassword": true,
      "googleSignIn": {
        "oAuthBrandDisplayName": "Your Brand Name",
        "supportEmail": "[email protected]",
        "authorizedRedirectUris": ["https://example.com", "http://localhost"]
      }
    }
  }
}

[!NOTE] If the Google Sign-In popup opens and immediately closes with the error [firebase_auth/unauthorized-domain], it means the domain is not authorized. For local development, ensure localhost is included in the Authorized Domains list in the Firebase Console or via the authorizedDomains field in firebase.json. CRITICAL: Do NOT include the protocol or port number in the Authorized Domains list (e.g., use localhost, NOT http://localhost:9090).

CRITICAL: After configuring firebase.json, you MUST deploy the auth configuration to the Firebase backend for the changes to take effect. This is essential for auth providers like Google Sign-In, email/password, etc. to auto-generate the necessary OAuth clients for your app platforms. Run:

npx -y firebase-tools@latest deploy --only auth

Option 2. Enabling Authentication in Console

Enable other providers in the Firebase Console.

  1. Go to the https://console.firebase.google.com/project/_/authentication/providers
  2. Select your project.
  3. Enable the desired Sign-in providers (e.g., Email/Password, Google).

2. Client Setup & Usage

Web See references/client_sdk_web.md.

Flutter See references/flutter_setup.md. Android (Kotlin) See references/client_sdk_android.md.

3. Security Rules

Secure your data using request.auth in Firestore/Storage rules.

See references/security_rules.md.

Más skills de firebase

firebase-remote-config-basics
firebase
Guía completa para Firebase Remote Config, que incluye gestión de plantillas y uso del SDK. Usa esta habilidad cuando el usuario necesite ayuda para configurar Remote Config, gestionar feature flags o actualizar el comportamiento de la aplicación de forma dinámica.
officialdevelopmentapi
developing-genkit-dart
firebase
SDK unificado de IA para Dart que permite generación de código, salidas estructuradas, herramientas, flujos y agentes. Proporciona APIs centrales para generación, definición de herramientas, orquestación de flujos, embeddings y streaming con una única interfaz. Incluye más de 8 complementos para proveedores de LLM (Google Gemini, Anthropic Claude, OpenAI GPT), Firebase AI, Protocolo de Contexto de Modelo, integración con navegador Chrome y alojamiento de servidor HTTP mediante Shelf. CLI integrada con interfaz de desarrollo local para ejecución de flujos, trazado, experimentación con modelos y...
official
developing-genkit-go
firebase
Desarrolla aplicaciones impulsadas por IA usando Genkit en Go. Úsalo cuando el usuario solicite crear funciones de IA, agentes, flujos o herramientas en Go con Genkit, o al trabajar…
official
developing-genkit-js
firebase
Crea aplicaciones Node.js/TypeScript impulsadas por IA con flujos, herramientas y soporte multimodelo de Genkit. Genkit es independiente del proveedor; admite Google AI, OpenAI, Anthropic, Ollama y otros proveedores de LLM mediante complementos. Define flujos con esquemas de tipo seguro usando Zod, ejecuta solicitudes de generación y compone flujos de trabajo de IA de varios pasos en TypeScript. Requiere Genkit CLI v1.29.0+; los cambios recientes importantes en la API significan que debes consultar genkit docs:read y common-errors.md para patrones actuales, no conocimientos previos...
official
developing-genkit-python
firebase
Desarrolla aplicaciones impulsadas por IA usando Genkit en Python. Úsalo cuando el usuario pregunte sobre Genkit, agentes de IA, flujos o herramientas en Python, o cuando se encuentre con Genkit…
official
firebase-ai-logic
firebase
Integración de Gemini del lado del cliente para aplicaciones web con inferencia multimodal, streaming y ejecución híbrida en el dispositivo. Admite entradas solo de texto y multimodales (imágenes, audio, video, PDFs); los archivos de más de 20 MB se enrutan a través de Cloud Storage. Incluye sesiones de chat con historial automático, respuestas en streaming para visualización en tiempo real y aplicación estructurada de salida JSON. Ofrece inferencia híbrida en el dispositivo mediante Gemini Nano en Chrome, con respaldo automático a la ejecución en la nube. Requiere App Check para producción...
official
firebase-ai-logic-basics
firebase
Habilidad oficial para integrar Firebase AI Logic (API de Gemini) en aplicaciones web. Cubre configuración, inferencia multimodal, salida estructurada y seguridad.
official
firebase-app-hosting-basics
firebase
Implementa y gestiona aplicaciones web full-stack con Firebase App Hosting usando Next.js, Angular y otros frameworks compatibles. Requiere un proyecto Firebase en el plan de precios Blaze; admite flujos de trabajo de renderizado del lado del servidor (SSR) y regeneración estática incremental (ISR). Despliega mediante configuración firebase.json con apphosting.yaml opcional para configuración del backend, o habilita el despliegue automatizado "git push to deploy" a través de la integración con GitHub. Incluye gestión de secretos mediante comandos CLI para acceso seguro a claves sensibles...
official