firebase-ai-logic-basics

作者: firebase

用於將 Firebase AI Logic(Gemini API)整合至網頁應用程式的官方技能,涵蓋設定、多模態推論、結構化輸出及安全性。

npx skills add https://github.com/firebase/agent-skills --skill firebase-ai-logic-basics

Firebase AI Logic Basics

Overview

Firebase AI Logic is a product of Firebase that allows developers to add gen AI to their mobile and web apps using client-side SDKs. The app can directly call Gemini models via Firebase AI Logic without the developer needing to manage a dedicated backend. Firebase AI Logic was previously known as "Vertex AI for Firebase".

It supports the two Gemini API providers:

  • Gemini Developer API: It has a free tier ideal for prototyping, and pay-as-you-go for production
  • Agent Platform Gemini API (formerly branded Vertex AI): Ideal for scale with enterprise-grade production readiness, requires Blaze pricing plan

Use the Gemini Developer API as a default, and only Agent Platform Gemini API (formerly branded Vertex AI) if the application requires it.


Setup & initialization

Prerequisites

  • Identify the platform the user is interested in building on prior to starting: Android, iOS, Web, or Flutter.
  • If their platform is unsupported, Direct the user to Firebase Docs to learn how to set up AI Logic for their application (share this link with the user https://firebase.google.com/docs/ai-logic/get-started)
  • The Firebase CLI commands below run through npx on every platform, so they need Node.js 20+ and npm. Use the firebase-basics skill to check for them and to log in to the Firebase CLI. If Node.js is missing or older than version 20, ask the user to install it as that skill describes. Don't install system packages yourself, for example with sudo apt-get, because that changes the user's machine without their consent.

1. Provision Firebase AI Logic (ALL platforms)

Use the Firebase CLI to provision Firebase AI Logic for the Firebase Project:

  1. Make sure that you're in a firebase directory (with a firebase.json).

  2. Verify that you're running Firebase CLI commands against the intended Firebase Project. When you run this command, the active project is marked with "current":

    npx -y firebase-tools@latest projects:list
    
  3. Make sure there's at least one Firebase App for the target platform registered with the current Firebase Project:

    npx -y firebase-tools@latest apps:list
    
  4. Provision Firebase AI Logic for the Firebase Project:

    npx -y firebase-tools@latest init ailogic
    

    This command will enable the Gemini Developer API in the Firebase project.

[!WARNING] CRITICAL: Provisioning Firebase AI Logic is Required For all platforms (Android, iOS, Web, or Flutter), even if the app already uses Firebase, you MUST run npx -y firebase-tools@latest init ailogic to provision the service. The configuration files of GoogleService-Info.plist, google-services.json, and firebase_options.dart ONLY handle client configuration and do NOT enable the Firebase AI Logic service, leading to PERMISSION_DENIED errors.

If you can't run init ailogic yourself (for example because Node.js is missing or the Firebase CLI isn't logged in) do NOT skip it. The app's requests to Gemini models will fail until the Firebase AI Logic service is provisioned. Tell the user to run this command in their project directory, and include it in your final summary:

npx -y firebase-tools@latest init ailogic

2. Add the SDK and initialize the service in the app

Adding the SDK dependency and initializing the service are platform-specific. Before writing code, read the reference for the target platform listed under Initialization Code References.

More info in Firebase AI Logic Getting Started


Core Capabilities

[!WARNING] CRITICAL: Use current model names: Always check the Firebase AI Logic Models documentation for the currently supported model names. Do NOT use any Gemini 1.x or Gemini 2.x models (such as gemini-1.5-flash, gemini-1.5-pro, gemini-2.0-flash, gemini-2.0-pro, gemini-2.5-flash, gemini-2.5-flash-lite, or gemini-2.5-pro), as older models are deprecated or shut down. Always use a currently supported Gemini 3+ model; if URL access is blocked in your environment, proceed directly without searching local files.

Text-Only Generation

Multimodal (Text + Images/Audio/Video/PDF input)

Firebase AI Logic allows Gemini models to analyze image files directly from your app. This enables features like creating captions, answering questions about images, detecting objects, and categorizing images. Beyond images, Gemini can analyze other media types like audio, video, and PDFs by passing them as inline data with their MIME type. For files larger than 20 megabytes (which can cause HTTP 413 errors as inline data), store them in Cloud Storage for Firebase and pass their URLs to the Gemini Developer API.

Chat Session (Multi-turn)

Maintain history automatically using startChat.

Streaming Responses

To improve the user experience by showing partial results as they arrive (like a typing effect), use generateContentStream instead of generateContent for faster display of results.

Text-to-Speech (TTS) Generation

Generate spoken audio directly on client devices without a custom speech backend. Firebase AI Logic supports speech synthesis using dedicated Gemini TTS models:

  • Supported Models: gemini-3.1-flash-tts-preview
  • Capabilities:
    • Single-speaker voice persona selection (voiceName) and multi-speaker dialogues (up to 2 distinct speakers) via SpeechConfig / MultiSpeakerVoiceConfig
    • Direct audio responses by setting responseModalities to audio
    • Streaming speech responses with generateContentStream for low-latency playback
    • Audio directives ([Audio Profile: ...], [Scene: ...], [Director's Note: ...]) and emotional tags ([whispers], [laughs], [slowly])
    • Client-side decoding and playback of 24 kHz 16-bit linear PCM (audio/l16) or WAV container format (audio/x-wav)

See the Text-to-Speech (TTS) Generation Guide for full implementation details, streaming patterns, and copy-paste code snippets for iOS (Swift), Android (Kotlin), and Web.

Generate Images with Nano Banana

[!WARNING] Use current Image model names: Always check the Firebase AI Logic Models documentation for the currently supported image generation (Nano Banana) model names.

  • Requires an upgraded Blaze pay-as-you-go billing plan.

Search Grounding with the built in googleSearch tool


Supported Platforms and Frameworks

Supported Platforms and Frameworks include Kotlin and Java for Android, Swift for iOS, JavaScript for web apps, Dart for Flutter, and C Sharp for Unity.

Advanced Features

Structured Output (JSON)

Enforce a specific JSON schema for the response.

On-Device AI (Hybrid)

Hybrid inference runs prompts with an on-device model when one is available and falls back to a cloud-hosted model otherwise (or vice versa). Availability and setup steps differ by platform, more info in the hybrid and on-device documentation, which links to each platform's guide.


Security & Production

Firebase App Check

[!WARNING] Critical Safety Requirement: In order to use AI Logic safely, you MUST set up App Check on your app. This prevents unauthorized clients from using your API quota and accessing your backend resources.

See App Check for Firebase AI Logic for setup instructions. Each platform uses its own attestation provider, so follow the instructions for the target platform.

App Check Debug Tokens for Local Development & CI/CD

Because App Check attestation providers (like Play Integrity or DeviceCheck) reject emulators, simulators, or CI environments, you must use App Check Debug Tokens during development and testing to bypass standard attestation.

[!WARNING] CRITICAL: Never Hardcode or Commit Debug Tokens App Check debug tokens allow clients to bypass attestation and access backend resources without a genuine device. Treat them as private secrets. Never commit debug tokens to version control or hardcode raw token strings in client code (Web, Android, iOS, or Flutter). Always inject them through local environment variables, gitignored local configurations, or CI secrets. If a token is compromised, revoke it immediately in the Firebase Console.

Local Development (Auto-Generated)
  1. Configure your code's App Check provider to use the debug factory. The API is platform-specific; see the App Check section of the platform reference or the App Check documentation linked above.
  2. Run your app in the emulator/localhost.
  3. Look at your runtime debugger console / Logcat logs for the generated UUID:
    • Example: AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
  4. Register this token in the Firebase Console under Security > App Check > Apps > Manage debug tokens.

💡 Tip (Prevent Debug Token Churn): Simulator or emulator resets, fresh installs, and clearing browser data can make the SDK generate a new debug token that you must register again. To keep a stable debug token without hardcoding it, see the App Check section of the platform reference.

CI/CD Pipelines (Pre-Provisioned)
  1. Generate and register a new debug token in the Firebase Console under Security > App Check > Apps > Manage debug tokens.
  2. Add this token string as an encrypted secret in your CI system (e.g. APP_CHECK_DEBUG_TOKEN).
  3. Configure your build to pass this secret as an environment variable to the SDK during test execution.

Firebase Remote Config

Consider that you do not need to hardcode model names (e.g., a specific model version string). Use Firebase Remote Config to update model versions dynamically without deploying new client code. See Changing model names remotely


Initialization Code References

[!WARNING] CRITICAL: Use current model names: Always check the Firebase AI Logic Models documentation for the currently supported model names. Do NOT use any Gemini 1.x or Gemini 2.x models (such as gemini-1.5-flash, gemini-2.0-flash, gemini-2.5-flash, or gemini-2.5-flash-lite), as older models are deprecated or shut down.

References

Android (Kotlin) SDK usage patterns iOS SDK code examples and usage patterns Web SDK setup, code examples, and usage patterns

Flutter SDK code examples and usage patterns Client-side Text-to-Speech (TTS) generation

來自 firebase 的更多技能

developing-genkit-dart
firebase
統一AI SDK for Dart,支援程式碼生成、結構化輸出、工具、流程與代理。提供核心API用於生成、工具定義、流程編排、嵌入與串流,並具備單一介面。包含8個以上外掛程式,支援LLM提供者(Google Gemini、Anthropic Claude、OpenAI GPT)、Firebase AI、模型上下文協定、Chrome瀏覽器整合,以及透過Shelf進行HTTP伺服器託管。內建CLI與本地開發UI,用於流程執行、追蹤、模型實驗等。
developing-genkit-js
firebase
使用 Genkit 流程、工具及多模型支援,建構 AI 驅動的 Node.js/TypeScript 應用程式。Genkit 與供應商無關;透過外掛支援 Google AI、OpenAI、Anthropic、Ollama 及其他 LLM 供應商。使用 Zod 定義型別安全的結構化流程,執行生成請求,並在 TypeScript 中組合多步驟 AI 工作流程。需要 Genkit CLI v1.29.0 以上版本;近期重大 API 變更,請務必查閱 genkit 文件:read 與 common-errors.md 以取得當前模式,而非依賴先前知識...
extension-to-functions-codebase
firebase
將已安裝的 Firebase Extension(或擴充功能原始碼)轉換為獨立的 Cloud Functions for Firebase 程式碼庫或可發行的 npm 套件的技能,……
firebase-ai-logic
firebase
客戶端Gemini整合,適用於網頁應用程式,支援多模態推論、串流及裝置端混合執行。支援純文字與多模態輸入(圖片、音訊、影片、PDF);超過20 MB的檔案會透過Cloud Storage路由。包含自動記錄歷史的聊天會話、即時顯示的串流回應,以及強制結構化JSON輸出。透過Chrome中的Gemini Nano提供裝置端混合推論,並自動備援至雲端執行。正式環境需啟用App Check...
firebase-app-hosting-basics
firebase
使用 Firebase App Hosting 搭配 Next.js、Angular 及其他支援的框架,部署與管理全端網頁應用程式。需使用 Blaze 計費方案的 Firebase 專案;支援伺服器端渲染(SSR)與增量靜態再生(ISR)工作流程。可透過 firebase.json 設定檔進行部署,並選擇性使用 apphosting.yaml 設定後端,或啟用 GitHub 整合的自動化「git push 部署」。包含透過 CLI 指令管理機密資訊,以安全存取敏感金鑰...
firebase-auth-basics
firebase
設定 Firebase Authentication,整合多種身分提供者與安全的資料存取規則。支援電子郵件/密碼、電話號碼、匿名、聯合提供者(Google、Facebook、Twitter、GitHub、Microsoft、Apple)以及自訂驗證整合。每位通過驗證的使用者會獲得一組唯一 ID 與基於 JWT 的令牌(短效 ID 令牌與長效更新令牌),用於存取 Firebase 服務。可透過 CLI 啟用 Google 登入、匿名及電子郵件/密碼等提供者;使用 Firebase Console...
firebase-basics
firebase
Firebase 專案設定與 CLI 工作流程,用於 AI 代理整合。需先完成 firebase-local-env-setup 技能及 Firebase CLI 安裝。核心工作流程涵蓋透過 firebase login 進行驗證、使用唯一 ID 建立專案,以及透過互動式 firebase init 指令初始化服務。支援在設定過程中選取功能,包括 Firestore、Functions 與 Hosting,並自動產生設定檔。具備自我說明功能的 CLI 可透過 --help 旗標...
firebase-crashlytics
firebase
Firebase Crashlytics 的完整指南,包括佈建與 SDK 使用方式。當使用者需要協助設定 Crashlytics、新增…時,請使用此技能。