Community编程与开发github.com

THE3RDTRAINER/Homepage

整合 Firebase AI Logic(原 Vertex AI for Firebase)到移动端和 Web 应用(Android、iOS、Web 和 Flutter)中,以便从客户端代码调用 Gemini 模型。适用于配置或初始化 Firebase AI Logic,或为应用添加 Gemini 功能:文本生成、多模态输入、聊天、流式传输、结构化输出、混合端侧推理、App Check 保护或通过 Remote Config 切换模型。

Homepage 是什么?

该技能为开发者提供了完整指导,帮助他们将 Firebase AI Logic(前身为 Vertex AI for Firebase)集成到 Android、iOS、Web 和 Flutter 应用中。它支持 Gemini Developer API(适合原型开发,具有免费层)和 Agent Platform Gemini API(适合企业级生产环境)。技能涵盖从 CLI 配置服务、添加 SDK 到实现文本生成、多模态分析、聊天会话、流式传输、语音合成、图像生成(Nano Banana)等核心功能。它还深入讲解了结构化输出(JSON)、混合端侧推理等高级特性,以及通过 App Check 和 Remote Config 增强安全性与动态配置的能力。该技能必须作为应用开发与 AI 功能集成的起点,且在任何平台上均需执行 `npx firebase-tools init ailogic` 来预配服务,否则会导致 `PERMISSION_DENIED` 错误。

兼容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/THE3RDTRAINER/Homepage/tree/HEAD/.agents/skills/firebase-ai-logic-basics

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Firebase AI Logic 基础

概览

Firebase AI Logic 是 Firebase 的一个产品,允许开发者使用客户端 SDK 为其移动和 Web 应用添加生成式 AI 功能。应用可以直接通过 Firebase AI Logic 调用 Gemini 模型,而无需管理专用的后端。Firebase AI Logic 之前被称为 "Vertex AI for Firebase"。

它支持两个 Gemini API 提供方:

  • Gemini Developer API:具有免费层,适合原型开发,并为生产环境提供按需付费。
  • Agent Platform Gemini API(原 Vertex AI):适合大规模企业级生产就绪,需要 Blaze 定价计划。

默认使用 Gemini Developer API,仅当应用需要时才使用 Agent Platform Gemini API(原 Vertex AI)。


设置与初始化

前提条件

  • 在开始之前,确定用户希望构建的平台:Android、iOS、Web 或 Flutter。
  • 如果平台不受支持,请引导用户参考 Firebase 文档,了解如何为其应用设置 AI Logic(将此链接分享给用户:https://firebase.google.com/docs/ai-logic/get-started)。
  • 以下 Firebase CLI 命令在所有平台上通过 npx 运行,因此需要 Node.js 20+ 和 npm。使用 firebase-basics 技能检查它们并登录 Firebase CLI。如果 Node.js 缺失或版本低于 20,请要求用户按照该技能的说明安装它。不要自行安装系统软件包(例如使用 sudo apt-get),因为这会在未经用户同意的情况下更改其机器。

1. 预配 Firebase AI Logic(所有平台)

使用 Firebase CLI 为 Firebase 项目预配 Firebase AI Logic:

  1. 确保你位于包含 firebase.json 的 Firebase 目录中。

  2. 验证你正在针对预期的 Firebase 项目运行 Firebase CLI 命令。运行此命令时,活动项目会标有 "current":

    npx -y firebase-tools@latest projects:list
    
  3. 确保当前 Firebase 项目中至少有一个目标平台的 Firebase 应用已注册:

    npx -y firebase-tools@latest apps:list
    
  4. 为 Firebase 项目预配 Firebase AI Logic:

    npx -y firebase-tools@latest init ailogic
    

    此命令将在 Firebase 项目中启用 Gemini Developer API。

[!WARNING] 关键:预配 Firebase AI Logic 是必需的 对于所有平台(Android、iOS、Web 或 Flutter),即使应用已经使用 Firebase,你也必须运行 npx -y firebase-tools@latest init ailogic 来预配服务。GoogleService-Info.plist、google-services.json 和 firebase_options.dart 等配置文件仅处理客户端配置,不会启用 Firebase AI Logic 服务,这会导致 PERMISSION_DENIED 错误。

如果你无法自行运行 init ailogic(例如因为缺少 Node.js 或 Firebase CLI 未登录),不要跳过它。应用的 Gemini 模型请求将一直失败,直到 Firebase AI Logic 服务被预配。告诉用户在其项目目录中运行此命令,并将其包含在你的最终总结中:

npx -y firebase-tools@latest init ailogic

2. 添加 SDK 并初始化应用中的服务

添加 SDK 依赖项和初始化服务是特定于平台的。在编写代码之前,请阅读初始化代码参考中目标平台的参考文档。

更多信息请参阅 Firebase AI Logic 快速入门。


核心功能

[!WARNING] 关键:使用当前模型名称 始终查看 Firebase AI Logic Models 文档 以获取当前支持的模型名称。不要使用 gemini-2.0-pro 或 gemini-2.0-flash 或其他已停用的旧模型。

文本生成

多模态(文本 + 图像/音频/视频/PDF 输入)

Firebase AI Logic 允许 Gemini 模型直接从你的应用分析图像文件。这可以实现创建标题、回答图像相关问题、检测对象和对图像进行分类等功能。除了图像,Gemini 还可以分析其他媒体类型,如音频、视频和 PDF,方式是将它们作为内联数据(附上 MIME 类型)传递。对于大于 20 兆字节的文件(作为内联数据可能导致 HTTP 413 错误),请将它们存储在 Cloud Storage for Firebase 中,并将其 URL 传递给 Gemini Developer API。

聊天会话(多轮)

使用 startChat 自动维护历史记录。

流式传输

为了改善用户体验,在结果到达时显示部分结果(类似打字效果),可以使用 generateContentStream 代替 generateContent 以更快地显示结果。

文本转语音 (TTS) 生成

直接在客户端设备上生成语音音频,无需自定义语音后端。Firebase AI Logic 支持使用专用的 Gemini TTS 模型进行语音合成:

  • 支持的模型:gemini-3.1-flash-tts-preview
  • 功能:
    • 通过 voiceName 选择单说话人声音角色,以及通过 SpeechConfig / MultiSpeakerVoiceConfig 实现多说话人对话(最多 2 个不同说话人)
    • 通过将 responseModalities 设置为音频来直接返回音频响应
    • 使用 generateContentStream 进行流式语音响应,实现低延迟播放
    • 音频指令([Audio Profile: ...]、[Scene: ...]、[Director's Note: ...])和情感标签([whispers]、[laughs]、[slowly])
    • 客户端解码和播放 24 kHz 16 位线性 PCM(audio/l16)或 WAV 容器格式(audio/x-wav)

有关完整的实现细节、流模式以及 iOS (Swift)、Android (Kotlin) 和 Web 的复制粘贴代码片段,请参阅文本转语音 (TTS) 生成指南。

使用 Nano Banana 生成图像

[!WARNING] 使用当前图像模型名称 始终查看 Firebase AI Logic Models 文档 以获取当前支持的图像生成(Nano Banana)模型名称。

  • 需要升级到 Blaze 按需付费计费计划。

使用内置 googleSearch 工具进行搜索接地


支持的平台和框架

支持的平台和框架包括 Android 的 Kotlin 和 Java、iOS 的 Swift、Web 应用的 JavaScript、Flutter 的 Dart 以及 Unity 的 C Sharp。

高级功能

结构化输出(JSON)

为响应强制指定特定的 JSON 模式。

端侧 AI(混合)

混合推理在可用时使用端侧模型运行提示,否则回退到云端模型(反之亦然)。可用性和设置步骤因平台而异,更多信息请参阅混合和端侧文档,其中链接了每个平台的指南。


安全与生产

Firebase App Check

[!WARNING] 关键安全要求: 为了安全地使用 AI Logic,你必须在应用上设置 App Check。这可以防止未经授权的客户端使用你的 API 配额和访问你的后端资源。

请参阅 Firebase AI Logic 的 App Check 获取设置说明。每个平台使用其自己的认证提供方,因此请遵循目标平台的说明。

本地开发和 CI/CD 的 App Check 调试令牌

由于 App Check 认证提供方(如 Play Integrity 或 DeviceCheck)会拒绝模拟器、模拟器或 CI 环境,因此在开发和测试期间,你必须使用 App Check 调试令牌 来绕过标准认证。

[!WARNING] 关键:切勿硬编码或提交调试令牌 App Check 调试令牌允许客户端绕过认证,在没有真实设备的情况下访问后端资源。将其视为私有密钥。切勿将调试令牌提交到版本控制或在客户端代码(Web、Android、iOS 或 Flutter)中硬编码原始令牌字符串。始终通过本地环境变量、gitignored 的本地配置或 CI 密钥注入。如果令牌泄露,请立即在 Firebase 控制台中撤销它。

本地开发(自动生成)
  1. 配置你代码的 App Check 提供方以使用调试工厂。API 是特定于平台的;请参阅平台参考的 App Check 部分或上面链接的 App Check 文档。
  2. 在模拟器/localhost 中运行你的应用。
  3. 在运行时调试控制台 / Logcat 日志中查找生成的 UUID:
    • 示例: AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678"
  4. 在 Firebase 控制台的 安全性 > App Check > 应用 > 管理调试令牌 中注册此令牌。

💡 提示(防止调试令牌变动): 模拟器或模拟器重置、全新安装和清除浏览器数据可能导致 SDK 生成新的调试令牌,你必须重新注册。要保持稳定的调试令牌而不进行硬编码,请参阅平台参考的 App Check 部分。

CI/CD 流水线(预配)
  1. 在 Firebase 控制台的 安全性 > App Check > 应用 > 管理调试令牌 中生成并注册一个新的调试令牌。
  2. 将此令牌字符串作为加密密钥添加到你的 CI 系统中(例如 APP_CHECK_DEBUG_TOKEN)。
  3. 配置你的构建,将此密钥作为环境变量传递给测试执行期间的 SDK。

Firebase Remote Config

请注意,你不需要硬编码模型名称(例如,特定的模型版本字符串)。使用 Firebase Remote Config 可以动态更新模型版本,而无需部署新的客户端代码。请参阅远程更改模型名称。


初始化代码参考

[!WARNING] 关键:使用当前模型名称 始终查看 Firebase AI Logic Models 文档 以获取当前支持的模型名称。不要使用 gemini-2.0-pro 或 gemini-2.0-flash 或其他已停用的旧模型。

参考

Android (Kotlin) SDK 使用模式 iOS SDK 代码示例和使用模式 Web SDK 设置、代码示例和使用模式

Flutter SDK 代码示例和使用模式 客户端文本转语音 (TTS) 生成

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能