Firebase AI Logic 基础
概览
Firebase AI Logic 是 Firebase 的一款产品,允许开发者使用客户端 SDK 将生成式 AI 添加到其移动和 Web 应用中。你可以直接从应用中调用 Gemini 模型,而无需管理专用后端。Firebase AI Logic 此前称为 “Vertex AI for Firebase”,代表了 Google 面向移动和 Web 开发者的 AI 集成平台的演进。
它支持两个 Gemini API 提供方:
- Gemini Developer API:它有一个适合原型开发的免费层级,并提供按量付费的生产环境
- Agent Platform Gemini API(前身为 Vertex AI):适合规模化使用,具有企业级生产就绪能力,需要 Blaze 计划
默认使用 Gemini Developer API,仅当应用需要时才使用 Agent Platform Gemini API(前身为 Vertex AI)。
设置与初始化
先决条件
- 开始之前,确保已安装 Node.js 16+ 和 npm。如果尚未安装,请安装它们。
- 在开始之前识别用户希望构建的平台:Android、iOS、Flutter 或 Web。
- 如果其平台不受支持,请引导用户前往 Firebase Docs,了解如何为其应用设置 AI Logic(将该链接分享给用户 https://firebase.google.com/docs/ai-logic/get-started)
安装
该库是标准 Firebase Web SDK 的一部分。
npm install firebase@latest
如果你位于 firebase 目录(包含 firebase.json)中,当前选定的项目将使用此命令标记为 “current”:
npx -y firebase-tools@latest projects:list
确保当前项目至少关联了一个应用
npx -y firebase-tools@latest apps:list
使用 init 命令初始化 AI logic SDK
npx -y firebase-tools@latest init ailogic
这会自动在 Firebase 控制台中启用 Gemini Developer API。
更多信息见 Firebase AI Logic 入门
核心能力
[!WARNING] 关键:使用当前模型名称: 务必查看
Firebase AI Logic 模型文档
以获取当前支持的模型名称。切勿使用 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,以实现更快的结果展示。
使用 Nano Banana 生成图像
[!WARNING] 使用当前图像模型名称: 务必查看
Firebase AI Logic 模型文档
以获取当前支持的图像生成(Nano Banana)模型名称。
- 需要升级后的 Blaze 按量付费账单计划。
使用内置 googleSearch 工具进行搜索接地
支持的平台与框架
支持的平台与框架包括 Android 的 Kotlin 和 Java、iOS 的 Swift、Web 应用的 JavaScript、Flutter 的 Dart,以及 Unity 的 C Sharp。
高级功能
结构化输出(JSON)
为响应强制执行特定 JSON schema。
设备端 AI(混合)
Web 应用的混合设备端推理,其中 Firebase Javascript SDK 会自动检查 Gemini Nano 的可用性(安装后),并在设备端或云端托管的提示执行之间切换。这需要在 Chrome 浏览器中启用模型使用的特定步骤,更多信息见 混合设备端推理文档。
安全性与生产
App Check
[!WARNING] 关键安全要求: 为了安全使用 AI Logic,你必须在应用中设置 App Check。这可防止未经授权的客户端使用你的 API 配额并访问你的后端资源。
有关设置说明,请参阅 App Check 与 reCAPTCHA Enterprise。
本地开发与 CI/CD 的 App Check 调试令牌
由于 App Check 证明提供方(如 Play Integrity 或 DeviceCheck)会拒绝模拟器、仿真器或 CI 环境,因此你必须在开发和测试期间使用 App Check Debug Tokens 来绕过标准证明。
##### 本地开发(自动生成)
- 将代码的 App Check 提供方配置为使用 debug factory:
- Web:在初始化 App Check 之前设置
self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;。 - Android:安装
DebugAppCheckProviderFactory.getInstance()。 - iOS:将提供方工厂设置为
AppCheckDebugProviderFactory()。
- 在模拟器/localhost 中运行应用。
- 在运行时调试器控制台 / Logcat 日志中查找生成的 UUID:
- *示例:* `AppCheck debug token:
"123a4567-b89c-12d3-e456-789012345678"`
- 在 Firebase Console 中的 Security > App Check > Apps > Manage debug tokens 下注册此令牌。
##### CI/CD 流水线(预先配置)
- 在 Firebase Console 中的 Security > App Check > Apps > Manage debug tokens 下生成并注册新的调试令牌。
- 将此令牌字符串添加为 CI 系统中的加密密钥(例如
APP_CHECK_DEBUG_TOKEN)。 - 配置构建,以便在测试执行期间将此密钥作为环境变量传递给 SDK(例如 `self.FIREBASE_APPCHECK_DEBUG_TOKEN =
process.env.APP_CHECK_DEBUG_TOKEN`)。
Remote Config
考虑不要硬编码模型名称(例如特定模型版本字符串)。使用 Firebase Remote Config 动态更新模型版本,而无需部署新的客户端代码。参见 远程更改模型名称
[!WARNING] 关键:需要后端预配 对于所有平台
(Flutter, Android, iOS, Web),你必须运行 npx firebase-tools init ailogic
以预配服务。flutterfire configure 仅处理客户端配置,并不会启用 AI 服务,这会导致
PERMISSION_DENIED 错误。
初始化代码参考
- Web Modular API
- 提供方:Gemini Developer API
- 参考:[usage_patterns_web.md](references/usage_patterns_web.md)
- Android (Kotlin)
- 提供方:Gemini Developer API
- 参考:[usage_patterns_android.md](references/usage_patterns_android.md)
- iOS (Swift)
- 提供方:Gemini Developer API
- 参考:[ios_setup.md](references/ios_setup.md)
- Flutter (Dart)
- 提供方:Gemini Developer API
- 参考:[flutter_setup.md](references/flutter_setup.md)
[!WARNING] 关键:使用当前模型名称: 务必查看
Firebase AI Logic 模型文档
以获取当前支持的模型名称。切勿使用 gemini-2.0-pro 或
gemini-2.0-flash 或其他已停用的旧模型。
参考
[Web SDK 代码示例与使用模式](references/usage_patterns_web.md) [iOS SDK 代码示例与使用模式](references/ios_setup.md) [Flutter SDK 代码示例与使用模式](references/flutter_setup.md)
[Android (Kotlin) SDK 使用模式](references/usage_patterns_android.md)