本页面提供了有关 Gemini API 和 Firebase AI Logic SDK 的常见问题解答 (FAQ) 和问题排查信息。如有其他问题,请参阅 Google Cloud 文档中的 Gemini API 常见问题解答。
常规常见问题解答
为什么名称从“Vertex AI in Firebase”更改为“Firebase AI Logic”?
早在 2024 年,我们就推出了一组 Firebase 客户端 SDK,这些 SDK 可以使用 Vertex AI Gemini API 和 Firebase 代理网关来保护该 API 免遭滥用,并支持与其他 Firebase 产品集成。我们将该产品命名为“Vertex AI in Firebase”,此产品名称准确描述了该产品当时可用的用例。
不过,自那以后,我们扩展了该产品的功能。例如,自 2025 年 5 月起,我们现在支持 Gemini Developer API,包括能够使用与 Firebase App Check 的集成来保护 Gemini Developer API 免遭滥用。
因此,“Vertex AI in Firebase”这个名称已不再准确反映我们产品的扩展范围。因此,新名称 Firebase AI Logic 更能体现我们不断完善的功能集,并让我们能够在未来继续拓展产品和服务!
请参阅迁移指南,确保您能使用 Firebase AI Logic 中的所有最新功能(并可选择开始使用 Gemini Developer API)。
使用 Gemini Developer API 和 Vertex AI Gemini API 有何区别?
以下是这两种“Gemini API”提供程序之间的一些区别(无论您以何种方式访问它们,通常都是如此):
-
Gemini Developer API 提供“免费层级”以及随用随付的定价方案。
将 Vertex AI Gemini API 与 Firebase AI Logic 搭配使用时,始终需要采用随用随付 Blaze 定价方案。
请注意,这两家 API 提供商采用的按需付费价格不同(如需了解详情,请参阅各自的文档)。
-
Gemini Developer API 具有明确的速率限制。
Vertex AI Gemini API 使用“动态共享配额 (DSQ)”,该配额由该区域内使用该模型的所有用户共享。您还可以根据需要设置预配吞吐量 (PT)。
-
- 只有 Vertex AI Gemini API 允许您选择访问模型的位置。
下表列出了两个“Gemini API”提供程序的常见功能的可用性。此表格专门适用于使用 Firebase AI Logic 客户端 SDK 的情况。
功能 | Gemini Developer API | Vertex AI Gemini API |
---|---|---|
支持 Gemini 型号 | 支持所有 Gemini 模型 | 支持所有 Gemini 模型 |
支持 Imagen 型号 |
支持 Imagen 3 模型
(尚不支持 Unity) |
支持 Imagen 3 模型
(尚不支持 Unity) |
支持 Veo 模型 | 尚不支持 | 尚不支持 |
使用 Gemini 模型生成图片 | 支持 | 支持 |
支持 Gemini Live API | 尚不支持 |
受支持
(仅限 Android、Flutter 和 Unity) |
与 Firebase App Check 集成 | 支持 | 支持 |
与 Firebase Remote Config 兼容 | 支持 | 支持 |
Firebase 控制台中支持 AI 监控 | 尚不支持 | 支持 |
支持 Cloud Storage 网址 | 尚不支持 1 |
公开文件和 Firebase Security Rules保护的文件 |
支持 YouTube 网址和浏览器网址 | 仅限 YouTube 网址 | YouTube 网址和浏览器网址 |
1 Gemini Developer API 不支持通过 Firebase AI Logic SDK 使用 Files API。
我可以同时使用 Gemini Developer API 和 Vertex AI Gemini API 吗?
可以,您可以在 Firebase 项目中同时启用两个“Gemini API”提供程序,并且可以在应用本身中使用这两个 API。
如需在代码中切换 API 提供程序,只需确保您已在代码中正确设置后端服务。
哪些 API 是必需的?如何启用这些功能?
选择您的 Gemini API 提供方以查看特定于提供方的内容 |
如需将 Firebase AI Logic SDK 与 Gemini Developer API 搭配使用,您的项目必须启用以下两个 API:
- Gemini Developer API(
generativelanguage.googleapis.com
人) - Firebase AI Logic API (
firebasevertexai.googleapis.com
)
您应使用 Firebase 控制台启用以下两个 API:
在 Firebase 控制台中,前往 Firebase AI Logic 页面。
点击开始使用。
选择即可开始使用 Gemini Developer API。
这会启动一个引导式工作流程,为您启用这两个 API。控制台还会生成一个 Gemini API 密钥,并将 Firebase AI Logic API 添加到 Firebase API 密钥的许可名单中。
哪些模型可以与 Firebase AI Logic SDK 搭配使用?
您可以将任何 Gemini 和 Imagen 3 基础模型与 Firebase AI Logic SDK(包括预览版和实验版)搭配使用。如需查看这些模型的列表,请参阅了解支持的模型。
您不能将非基础 Gemini 模型(例如 PaLM 模型、经过调优的模型或基于 Gemma 的模型)与 Firebase AI Logic SDK 搭配使用。
Firebase AI Logic 也不支持旧版 Imagen 模型或
imagen-3.0-capability-001
。Gemini Developer API(无论以何种方式访问)不支持
imagen-3.0-fast-generate-001
或旧版imagen-3.0-generate-001
。
我们会经常向 SDK 添加新功能,因此请定期查看此常见问题解答,了解最新动态(以及发布说明、博客和社交媒体帖子)。
模型弃用后该怎么办?
发布稳定模型版本时,我们会努力确保该版本至少可用一年。我们会在 Firebase 和 Google Cloud 文档的多个位置列出此“弃用日期”(例如,在“模型”页面中)。
当模型被弃用后,对该模型的所有请求都会失败并显示 404 错误。因此,我们强烈建议您设置和使用 Firebase Remote Config,以便动态更改应用中的模型和版本,而无需发布应用的新版本。
更新应用以使用新模型版本时,我们建议您测试应用,确保回答仍能按预期给出。请注意,使用 Firebase AI Logic 时,通常不需要修改实际调用模型的任何代码。
以下是各种型号的弃用日期:
Gemini 1.5 Pro 型号:
gemini-1.5-pro-002
(和gemini-1.5-pro
):2025 年 9 月 24 日gemini-1.5-pro-001
:2025 年 5 月 24 日
Gemini 1.5 Flash 型号:
gemini-1.5-flash-002
(和gemini-1.5-flash
):2025 年 9 月 24 日gemini-1.5-flash-001
:2025 年 5 月 24 日
Gemini 1.0 Pro Vision 型号:2025 年 4 月 21 日(之前的计划是 2025 年 4 月 9 日)
Gemini 1.0 Pro 型号:2025 年 4 月 21 日(之前的计划是 2025 年 4 月 9 日)
如何设置单个用户的速率限制?
默认情况下,Firebase AI Logic 将每个用户的请求数限制设置为每分钟 100 个请求 (RPM)。
如果您想调整每位用户的速率限制,则需要调整 Firebase AI Logic API 的配额设置。
详细了解 Firebase AI Logic API 配额。您还可以在该页面上了解如何查看和修改配额。
使用 Firebase AI Logic SDK 需要哪些权限?
操作 | 所需的 IAM 权限 | 默认包含所需权限的 IAM 角色 |
---|---|---|
将结算方案升级为随用随付 (Blaze) 定价方案 | firebase.billingPlans.update resourcemanager.projects.createBillingAssignment resourcemanager.projects.deleteBillingAssignment
|
Owner |
在项目中启用 API | serviceusage.services.enable |
Editor Owner |
创建 Firebase 应用 | firebase.clients.create |
Firebase 管理员 编辑者 所有者 |
Firebase AI Logic 是否会使用我的数据来训练模型?
请参阅数据治理和负责任 AI。
我的多模态请求中是否必须包含 MIME 类型?(例如图片、PDF、视频和音频输入)
是的,在每个多模式请求中,您都必须始终提供以下内容:
文件的
mimeType
。请参阅下文中的例外情况。文件。您可以以内嵌数据的形式提供文件,也可以使用文件网址提供文件。
如需了解支持的输入文件类型、如何指定 MIME 类型以及提供文件的两种方式,请参阅支持的输入文件和要求。
在请求中添加 MIME 类型的例外情况
提供 MIME 类型的一个例外情况是,对于来自原生 Android 和 Apple 平台应用的请求,可以使用内嵌图片输入。
适用于 Android 和 Apple 平台的 Firebase AI Logic SDK 提供了一种简化且适用于各平台的方式来处理请求中的图片:所有图片(无论格式如何)都会在客户端转换为 JPEG,质量为 80%,然后再发送到服务器。这意味着,当您使用 Android 和 Apple 平台 SDK 以内嵌数据的形式提供图片时,无需在请求中指定 MIME 类型。
Firebase AI Logic 文档中有关在请求中发送 base64 编码图片的示例中展示了这种简化处理方式。
以下是有关此功能的一些平台专用信息:
对于 Android 设备:
您可以利用简化的方式,在包含图片作为内嵌数据的多模态提示中处理平台原生图片类型 (
Bitmap
)(请参阅示例)。如需更好地控制图片格式和转换,您可以将图片作为
InlineDataPart
提供,并提供特定的 MIME 类型。例如:content { inlineData(/* PNG as byte array */, "image/png") }
对于 Apple 平台:
您可以利用简化的方法,在多模式提示中处理包含图片作为内嵌数据的平台原生图片类型 (
UIImage
、NSImage
、CIImage
和CGImage
)(请参阅示例)。如需更好地控制图片格式和转换,您可以将图片作为
InlineDataPart
提供,并提供特定的 MIME 类型。例如:InlineDataPart(data: Data(/* PNG Data */), mimeType: "image/png")
使用 Firebase AI Logic 时,这些功能是否可用?上下文缓存、将搜索用作工具、依托 Google 搜索进行接地、代码执行、微调模型、嵌入生成和语义检索?
各种模型或 Vertex AI Gemini API 支持上下文缓存、将搜索用作工具、依托 Google 搜索进行接地、代码执行、微调模型、生成嵌入和语义检索,但使用 Firebase AI Logic 时无法使用这些功能。
如果您想将这些功能添加为功能请求,或对现有功能请求进行投票,请访问 Firebase UserVoice。
Gemini API 密钥常见问题解答
仅当您使用 Gemini Developer API 时,以下常见问题解答才适用。
什么是 Gemini API 密钥?
Gemini Developer API 使用“Gemini API 密钥”来授权调用方。因此,如果您通过 Firebase AI Logic SDK 使用 Gemini Developer API,则需要在 Firebase 项目中拥有有效的 Gemini API 密钥才能调用该 API。
“Gemini API 密钥”只是指 API 许可名单中包含 Gemini Developer API 的 API 密钥。
当您在 Firebase 控制台中完成 Firebase AI Logic 设置工作流时,我们会创建一个仅限 Gemini Developer API 使用的 Gemini API 密钥,并设置 Firebase AI Logic 代理服务以使用此 API 密钥。在 Google Cloud 控制台的凭据页面中,此 Firebase 生成的 Gemini API 密钥名为 Gemini Developer API 密钥(由 Firebase 自动创建)。
详细了解 API 密钥的 API 限制。
使用 Firebase AI Logic SDK 时,请不要将 Gemini API 密钥添加到应用的代码库中。详细了解如何保障 Gemini API 密钥的安全。
我是否应将 Gemini API 密钥添加到移动应用或 Web 应用的代码库中?
使用 Firebase AI Logic SDK 时,请不要将 Gemini API 密钥添加到应用的代码库中。
事实上,在使用 Firebase AI Logic SDK 进行开发时,您不会直接与 Gemini API 密钥进行交互。相反,我们的 Firebase AI Logic 代理服务会在向 Gemini Developer API 发出的每个请求中在内部添加 Gemini API 密钥,完全在后端进行。
如何更改用于调用 Gemini Developer API 的 Gemini API 密钥?
使用 Firebase AI Logic SDK 时,您不太可能需要更改 Gemini API 密钥。不过,在以下两种情况下,您可能需要执行以下操作:
如果您不小心泄露了密钥,并想将其替换为新的安全密钥。
如果您不小心删除了密钥。请注意,您可以在删除密钥后的 30 天内取消删除该密钥。
您可以按以下步骤更改 Firebase AI Logic SDK 使用的 Gemini API 密钥:
如果 Firebase 生成的 Gemini API 密钥仍然存在,请将其删除。
您可以在 Google Cloud 控制台的 API 和服务 > 凭据面板中删除此 API 密钥。该密钥的名称为:
Gemini Developer API 密钥(由 Firebase 自动创建)。在 Google Cloud 控制台的同一页面中,创建新的 API 密钥。我们建议您使用以下名称:
适用于 Firebase 的 Gemini Developer API 密钥。为这个新的 API 密钥添加 API 限制,并仅选择 Generative Language API。
Gemini Developer API 在 Google Cloud 控制台中有时称为“生成式语言 API”。请不要添加任何应用限制;否则,Firebase AI Logic 代理服务将无法正常运行。
运行以下命令,将此新密钥设置为 Firebase AI Logic 代理服务应使用的 Gemini API 密钥。
PROJECT_ID="PROJECT_ID" GENERATIVE_LANGUAGE_API_KEY="DEVELOPER_CREATED_GEMINI_API_KEY" curl \ -X PATCH \ -H "x-goog-user-project: ${PROJECT_ID}" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://firebasevertexai.googleapis.com/v1beta/projects/${PROJECT_ID}/locations/global/config" \ -d "{\"generativeLanguageConfig\": {\"apiKey\": \"${GENERATIVE_LANGUAGE_API_KEY}\"}}"
了解 gcloud CLI。
请务必不将此新的 Gemini API 密钥添加到应用的代码库。详细了解如何保障 Gemini API 密钥的安全。
我可以将“Firebase API 密钥”用作 Gemini API 密钥吗?
不可以。您不得将“Firebase API 密钥”用作 Gemini API 密钥。我们强烈建议您不要将 Gemini Developer API 添加到 Firebase API 密钥的许可名单中。
您的 Firebase API 密钥是指 Firebase 配置文件或对象中列出的 API 密钥,您将其添加到应用的代码库中,以便将应用连接到 Firebase。如果您仅将 Firebase API 密钥用于 Firebase 相关 API(例如 Firebase AI Logic),则可以将其包含在代码中。 了解有关 Firebase API 密钥的重要信息。
在 Google Cloud 控制台的 API 和服务 > 凭据面板中,Firebase API 密钥如下所示:
由于您需要将 Firebase API 密钥添加到应用的代码库中,Firebase 相关 API 才能正常运行,并且 Gemini Developer API 是通过 API 密钥授权的,因此我们强烈建议您不要将 Gemini Developer API(在 Google Cloud 控制台中称为“生成式语言 API”)添加到 Firebase API 密钥的 API 许可名单中。如果您这样做,则会使 Gemini Developer API 面临潜在的滥用行为。
如何确保 Gemini API 密钥的安全?
本常见问题解答介绍了一些建议的最佳实践,可帮助您确保 Gemini API 密钥的安全。
如果您直接从移动应用或 Web 应用调用 Gemini Developer API,请执行以下操作:
- 使用 Firebase AI Logic 客户端 SDK。
- 请不要将 Gemini API 密钥添加到应用的代码库中。
Firebase AI Logic 提供代理服务,该服务会在向 Gemini Developer API 发出的每个请求中在内部包含您的 Gemini API 密钥,且完全在后端进行。
此外,我们强烈建议您采取以下措施:
在您开始认真开发应用后,请立即与 Firebase App Check 集成,以帮助保护您的后端资源以及用于访问生成式模型的 API。
请勿在 Firebase AI Logic 之外重复使用 Firebase 生成的 Gemini API 密钥。如果您需要为其他用例创建 Gemini API 密钥,请创建单独的密钥。
通常情况下,您不应修改 Firebase 生成的 Gemini API 密钥。此密钥在 Google Cloud 控制台中的名称为 Gemini Developer API 密钥(由 Firebase 自动创建)。
请不要向 Firebase 生成的 Gemini API 密钥的 API 许可名单添加任何其他 API。在其 API 许可名单中,您的 Gemini API 密钥仅应包含 Gemini Developer API(在 Google Cloud 控制台中称为“Generative Language API”)。
请不要添加任何应用限制;否则,Firebase AI Logic 代理服务将无法正常运行。
我的 Gemini API 密钥已被盗用。我需要做什么?
如果您的 Gemini API 密钥已被泄露,请按照说明更改用于调用 Gemini Developer API 的 Gemini API 密钥。
此外,请查看推荐的最佳实践,以保障 Gemini API 密钥的安全。
排查错误
如何解决此 404 错误?Firebase AI Logic genai config not found
如果您尝试使用 Gemini Developer API 时收到一条内容为 Firebase AI Logic genai config not found
的 404 错误,通常表示您的 Firebase 项目没有可与 Firebase AI Logic 客户端 SDK 搭配使用的有效 Gemini API 密钥。
导致出现此错误的最可能原因如下:
您尚未为 Gemini Developer API 设置 Firebase 项目。
解决方法:
在 Firebase 控制台中,前往 Firebase AI Logic 页面。点击开始,然后选择 Gemini Developer API。启用该 API 后,控制台会为 Gemini Developer API 设置您的项目。完成工作流程后,请再次尝试您的请求。如果您最近才在 Firebase 控制台中完成了 Firebase AI Logic 设置工作流,那么您的 Gemini API 密钥可能尚未可供所有区域的所有必需后端服务使用。
解决方法:
请等待几分钟,然后再次尝试发出请求。您的 Gemini API 密钥可能已从您的 Firebase 项目中删除。
解决方法:
了解如何更改 Firebase AI Logic 使用的 Gemini API 密钥。
如何解决这个 400 错误?Service agents are being provisioned ... Service agents are needed to read the Cloud Storage file provided.
如果您尝试使用 Cloud Storage for Firebase 网址发送多模式请求,可能会遇到以下 400 错误:
Service agents are being provisioned ... Service agents are needed to read the Cloud Storage file provided.
此错误是由以下原因导致的:在项目中启用 Vertex AI API 时,项目未正确自动预配所需的服务代理。这是某些项目的一个已知问题,我们正在努力进行全局修复。
以下是修复项目并正确预配这些服务代理的权宜解决方法,以便您开始在多模态请求中添加 Cloud Storage for Firebase 网址。您必须是项目的所有者,并且只需为项目完成这组任务一次。
使用 gcloud CLI 进行访问和身份验证。
最简单的方法是通过 Cloud Shell 执行此操作。如需了解详情,请参阅 Google Cloud 文档。如果出现提示,请按照终端中显示的说明针对您的 Firebase 项目运行 gcloud CLI。
您需要 Firebase 项目 ID,可以在 Firebase 控制台的 settings 项目设置顶部找到。
运行以下命令,在项目中预配所需的服务代理:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints -d ''
请等待几分钟,以确保服务代理已预配完毕,然后重试发送包含 Cloud Storage for Firebase 网址的多模式请求。
如果您在等待几分钟后仍收到此错误消息,请与 Firebase 支持团队联系。
如何解决这个 400 错误?API key not valid. Please pass a valid API key.
如果您收到内容为 API key not valid. Please pass a valid API key.
的 400 错误,通常表示 Firebase 配置文件/对象中的 API 密钥不存在,或者未设置为与您的应用和/或 Firebase 项目搭配使用。
检查 Firebase 配置文件/对象中列出的 API 密钥是否与应用的 API 密钥一致。您可以在 Google Cloud 控制台的 API 和服务 > 凭据面板中查看所有 API 密钥。
如果您发现它们不匹配,请获取新的 Firebase 配置文件/对象,然后替换应用中的配置文件/对象。新的配置文件/对象应包含应用和 Firebase 项目的有效 API 密钥。
如何解决此 403 错误?Requests to this API firebasevertexai.googleapis.com ... are blocked.
如果您收到内容为 Requests to this API firebasevertexai.googleapis.com ... are blocked.
的 403 错误,通常表示 Firebase 配置文件/对象中的 API 密钥在其许可名单中没有您尝试使用的商品的必需 API。
请确保您的应用使用的 API 密钥包含密钥“API 限制”许可名单中的所有必需 API。对于 Firebase AI Logic,您的 API 密钥的许可名单中至少需要包含 Firebase AI Logic API。
您可以在 Google Cloud 控制台的 API 和服务 > 凭据面板中查看所有 API 密钥。
如何解决此 403 错误?PERMISSION_DENIED: The caller does not have permission.
如果您收到内容为 PERMISSION_DENIED: The caller does not have permission.
的 403 错误,通常表示 Firebase 配置文件/对象中的 API 密钥属于其他 Firebase 项目。
检查 Firebase 配置文件/对象中列出的 API 密钥是否与应用的 API 密钥一致。您可以在 Google Cloud 控制台的 API 和服务 > 凭据面板中查看所有 API 密钥。
如果您发现它们不匹配,请获取新的 Firebase 配置文件/对象,然后替换应用中的配置文件/对象。新的配置文件/对象应包含应用和 Firebase 项目的有效 API 密钥。
就您使用 Firebase AI Logic 的体验提供反馈