Conceptos Básicos de Firebase AI Logic
Descripción General
Firebase AI Logic es un producto de Firebase que permite a los desarrolladores añadir IA generativa a sus aplicaciones móviles y web usando SDKs del lado del cliente. La aplicación puede llamar directamente a los modelos Gemini a través de Firebase AI Logic sin necesidad de que el desarrollador gestione un backend dedicado. Firebase AI Logic se conocía anteriormente como "Vertex AI para Firebase".
Admite los dos proveedores de API Gemini:
- Gemini Developer API: Tiene un nivel gratuito ideal para prototipos y pago por uso para producción.
- Agent Platform Gemini API (anteriormente Vertex AI): Ideal para escalar con preparación para producción de nivel empresarial, requiere el plan de precios Blaze.
Usa la Gemini Developer API como predeterminada, y solo la Agent Platform Gemini API (anteriormente Vertex AI) si la aplicación lo requiere.
Configuración e Inicialización
Prerrequisitos
- Identifica la plataforma en la que el usuario está interesado en desarrollar antes de comenzar: Android, iOS, Web o Flutter.
- Si su plataforma no es compatible, dirige al usuario a la Documentación de Firebase para aprender cómo configurar AI Logic para su aplicación (comparte este enlace con el usuario: https://firebase.google.com/docs/ai-logic/get-started)
- Los comandos de Firebase CLI que aparecen a continuación se ejecutan a través de
npxen todas las plataformas, por lo que necesitan Node.js 20+ y npm. Usa la skillfirebase-basicspara verificarlos e iniciar sesión en Firebase CLI. Si Node.js falta o es anterior a la versión 20, pide al usuario que lo instale como se describe en esa skill. No instales paquetes del sistema tú mismo, por ejemplo consudo apt-get, ya que eso modifica la máquina del usuario sin su consentimiento.
1. Aprovisionar Firebase AI Logic (TODAS las plataformas)
Usa la Firebase CLI para aprovisionar Firebase AI Logic para el Proyecto de Firebase:
-
Asegúrate de estar en un directorio de Firebase (con un
firebase.json). -
Verifica que estás ejecutando comandos de Firebase CLI contra el Proyecto de Firebase previsto. Cuando ejecutas este comando, el proyecto activo se marca con "current":
npx -y firebase-tools@latest projects:list -
Asegúrate de que al menos una Aplicación de Firebase para la plataforma objetivo esté registrada en el Proyecto de Firebase actual:
npx -y firebase-tools@latest apps:list -
Aprovisiona Firebase AI Logic para el Proyecto de Firebase:
npx -y firebase-tools@latest init ailogicEste comando habilitará la Gemini Developer API en el proyecto de Firebase.
[!WARNING] CRÍTICO: Es Necesario Aprovisionar Firebase AI Logic Para todas las plataformas (Android, iOS, Web o Flutter), incluso si la aplicación ya usa Firebase, DEBES ejecutar
npx -y firebase-tools@latest init ailogicpara aprovisionar el servicio. Los archivos de configuraciónGoogleService-Info.plist,google-services.jsonyfirebase_options.dartsolo manejan la configuración del cliente y NO habilitan el servicio Firebase AI Logic, lo que genera erroresPERMISSION_DENIED.
Si no puedes ejecutar init ailogic tú mismo (por ejemplo, porque Node.js falta o la Firebase CLI no ha iniciado sesión), NO lo omitas. Las solicitudes de la aplicación a los modelos Gemini fallarán hasta que se aprovisione el servicio Firebase AI Logic. Indica al usuario que ejecute este comando en su directorio de proyecto e inclúyelo en tu resumen final:
npx -y firebase-tools@latest init ailogic
2. Agregar el SDK e Inicializar el Servicio en la Aplicación
Agregar la dependencia del SDK e inicializar el servicio son específicos de cada plataforma. Antes de escribir código, lee la referencia para la plataforma objetivo que se encuentra en Referencias de Código de Inicialización.
Más información en Introducción a Firebase AI Logic
Capacidades Principales
[!WARNING] CRÍTICO: Usa nombres de modelos actuales: Siempre verifica la Documentación de Modelos de Firebase AI Logic para obtener los nombres de modelos compatibles actualmente. NO uses
gemini-2.0-pronigemini-2.0-flashni otros modelos antiguos que estén descontinuados.
Generación de Solo Texto
Multimodal (Entrada de Texto + Imágenes/Audio/Video/PDF)
Firebase AI Logic permite que los modelos Gemini analicen archivos de imagen directamente desde tu aplicación. Esto permite funciones como crear leyendas, responder preguntas sobre imágenes, detectar objetos y categorizar imágenes. Más allá de las imágenes, Gemini puede analizar otros tipos de medios como audio, video y PDF pasándolos como datos en línea con su tipo MIME. Para archivos de más de 20 megabytes (que pueden causar errores HTTP 413 como datos en línea), guárdalos en Cloud Storage para Firebase y pasa sus URL a la Gemini Developer API.
Sesión de Chat (Múltiples Turnos)
Mantén el historial automáticamente usando startChat.
Respuestas en Streaming
Para mejorar la experiencia del usuario mostrando resultados parciales a medida que llegan (como un efecto de escritura), usa generateContentStream en lugar de generateContent para una visualización más rápida de los resultados.
Generación de Texto a Voz (TTS)
Genera audio hablado directamente en los dispositivos del cliente sin un backend de voz personalizado. Firebase AI Logic admite síntesis de voz usando modelos Gemini TTS dedicados:
- Modelos Compatibles:
gemini-3.1-flash-tts-preview - Capacidades:
- Selección de persona de voz de un solo hablante (
voiceName) y diálogos de múltiples hablantes (hasta 2 hablantes distintos) medianteSpeechConfig/MultiSpeakerVoiceConfig - Respuestas de audio directas configurando
responseModalitiesen audio - Respuestas de voz en streaming con
generateContentStreampara reproducción de baja latencia - Directivas de audio (
[Audio Profile: ...],[Scene: ...],[Director's Note: ...]) y etiquetas emocionales ([whispers],[laughs],[slowly]) - Decodificación y reproducción del lado del cliente de PCM lineal de 24 kHz y 16 bits (
audio/l16) o formato contenedor WAV (audio/x-wav)
- Selección de persona de voz de un solo hablante (
Consulta la Guía de Generación de Texto a Voz (TTS) para obtener detalles completos de implementación, patrones de streaming y fragmentos de código listos para copiar y pegar para iOS (Swift), Android (Kotlin) y Web.
Generar Imágenes con Nano Banana
[!WARNING] Usa nombres de modelos de imágenes actuales: Siempre verifica la Documentación de Modelos de Firebase AI Logic para obtener los nombres de modelos de generación de imágenes (Nano Banana) compatibles actualmente.
- Requiere un plan de facturación Blaze de pago por uso actualizado.
Grounding de Búsqueda con la herramienta integrada googleSearch
Plataformas y Frameworks Compatibles
Las plataformas y frameworks compatibles incluyen Kotlin y Java para Android, Swift para iOS, JavaScript para aplicaciones web, Dart para Flutter y C Sharp para Unity.
Funciones Avanzadas
Salida Estructurada (JSON)
Impón un esquema JSON específico para la respuesta.
IA en el Dispositivo (Híbrida)
La inferencia híbrida ejecuta indicaciones con un modelo en el dispositivo cuando está disponible y recurre a un modelo alojado en la nube en caso contrario (o viceversa). La disponibilidad y los pasos de configuración varían según la plataforma; más información en la documentación híbrida y en el dispositivo, que enlaza a la guía de cada plataforma.
Seguridad y Producción
Firebase App Check
[!WARNING] Requisito Crítico de Seguridad: Para usar AI Logic de forma segura, DEBES configurar App Check en tu aplicación. Esto evita que clientes no autorizados usen tu cuota de API y accedan a tus recursos de backend.
Consulta App Check para Firebase AI Logic para obtener instrucciones de configuración. Cada plataforma utiliza su propio proveedor de atestación, así que sigue las instrucciones para la plataforma objetivo.
Tokens de Depuración de App Check para Desarrollo Local y CI/CD
Debido a que los proveedores de atestación de App Check (como Play Integrity o DeviceCheck) rechazan emuladores, simuladores o entornos de CI, debes usar Tokens de Depuración de App Check durante el desarrollo y las pruebas para omitir la atestación estándar.
[!WARNING] CRÍTICO: Nunca Codifiques ni Confirmes Tokens de Depuración Los tokens de depuración de App Check permiten que los clientes omitan la atestación y accedan a los recursos de backend sin un dispositivo genuino. Trátalos como secretos privados. Nunca confirmes tokens de depuración en el control de versiones ni codifiques cadenas de token sin procesar en el código del cliente (Web, Android, iOS o Flutter). Inyéctalos siempre a través de variables de entorno locales, configuraciones locales ignoradas por git o secretos de CI. Si un token se ve comprometido, revócalo inmediatamente en la Consola de Firebase.
Desarrollo Local (Generado Automáticamente)
- Configura el proveedor de App Check de tu código para usar la fábrica de depuración. La API es específica de la plataforma; consulta la sección de App Check de la referencia de la plataforma o la documentación de App Check enlazada arriba.
- Ejecuta tu aplicación en el emulador/localhost.
- Busca en la consola de depuración en tiempo de ejecución / registros de Logcat el UUID generado:
- Ejemplo:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
- Ejemplo:
- Registra este token en la Consola de Firebase en Seguridad > App Check > Aplicaciones > Gestionar tokens de depuración.
💡 Consejo (Evitar la Rotación de Tokens de Depuración): Los reinicios del simulador o emulador, las instalaciones nuevas y la limpieza de datos del navegador pueden hacer que el SDK genere un nuevo token de depuración que debes registrar nuevamente. Para mantener un token de depuración estable sin codificarlo, consulta la sección de App Check de la referencia de la plataforma.
Tuberías de CI/CD (Preaprovisionados)
- Genera y registra un nuevo token de depuración en la Consola de Firebase en Seguridad > App Check > Aplicaciones > Gestionar tokens de depuración.
- Agrega esta cadena de token como un secreto cifrado en tu sistema de CI (por ejemplo,
APP_CHECK_DEBUG_TOKEN). - Configura tu compilación para pasar este secreto como una variable de entorno al SDK durante la ejecución de las pruebas.
Firebase Remote Config
Considera que no es necesario codificar los nombres de los modelos (por ejemplo, una cadena de versión de modelo específica). Usa Firebase Remote Config para actualizar las versiones de los modelos dinámicamente sin tener que desplegar nuevo código de cliente. Consulta Cambiar nombres de modelos de forma remota
Referencias de Código de Inicialización
-
Android (Kotlin)
- Proveedor de API Gemini: Gemini Developer API
- Referencia: usage_patterns_android.md
-
iOS (Swift)
- Proveedor de API Gemini: Gemini Developer API
- Referencia: ios_setup.md
-
Web Modular API
- Proveedor de API Gemini: Gemini Developer API
- Referencia: usage_patterns_web.md
-
Flutter (Dart)
- Proveedor de API Gemini: Gemini Developer API
- Referencia: flutter_setup.md
[!WARNING] CRÍTICO: Usa nombres de modelos actuales: Siempre verifica la Documentación de Modelos de Firebase AI Logic para obtener los nombres de modelos compatibles actualmente. NO uses
gemini-2.0-pronigemini-2.0-flashni otros modelos antiguos que estén descontinuados.
Referencias
Patrones de uso del SDK de Android (Kotlin) Ejemplos de código y patrones de uso del SDK de iOS Configuración del SDK Web, ejemplos de código y patrones de uso
Ejemplos de código y patrones de uso del SDK de Flutter Generación de texto a voz (TTS) del lado del cliente