将 Cloud Firestore 和 Authentication 添加到 Google AI Studio 应用

Google AI Studio 中的构建模式可以自动设置 Cloud FirestoreFirebase Authentication 并将其集成到 Web 应用中,从而更轻松地构建具有持久性数据存储和安全登录流程的应用。只需一个提示和几次点击,您就可以让 Google AI Studio 代理设置 Firebase 项目、将应用连接到该项目,并直接在应用中生成所有 Cloud FirestoreAuthentication 代码。

概览:为 Google AI Studio 应用添加后端

  1. 描述您的想法:在 Google AI Studio 中创建一个新应用,并描述需要数据库或身份验证的功能。例如,您可以输入以下提示:Build a shared to-do list app using Firebase as a backend.

  2. 启用 Firebase 集成:当代理提示时,启用 Firebase,为项目选择一个位置,并接受 Firebase 条款。然后,代理会自动将应用连接到 Firebase 项目,并为应用生成必要的 Cloud FirestoreAuthentication 代码,包括 /src/lib/firebase.ts 文件和 firestore.rules 文件。

  3. 部署:准备就绪后,使用共享 > 发布选项将 Web 应用部署到 Cloud Run

了解 Cloud Firestore 的共享配额

Google AI Studio 代理预配的所有 Cloud Firestore 数据库都位于 Firebase 项目的同一数据库“组”中。它们都具有以下特征:

  • 共享配额:组中的所有数据库共享一个使用配额(详见下文)。
  • 无需 Cloud Billing 账号:您可以构建和测试应用,而无需添加结算信息。如需详细了解如何选择性添加结算信息,请参阅下文
  • 每日重置:如果您达到每日配额上限(例如,每天 5 万次读取),该服务将暂停该组中所有数据库的运行,并在第二天美国太平洋时间零点左右恢复运行。

共享配额组中的 Cloud Firestore 数据库共享以下限制:

指标 Quota
数据存储 总计 1 GiB
网络出站流量 每月 10 GiB
写入单元 每天 4 万次写入
读取单元 每天 5 万次读取
实时更新单元 每天 50,000 次更新

(可选)添加结算信息以获得更多 Cloud Firestore 配额

如果您的应用获得了一定的关注度,并且您需要超出 Cloud Firestore 的免费限额,则可以将项目升级为随用随付 Blaze 定价方案

  1. 添加结算信息(如果您尚未添加):前往 Firebase 控制台,然后将结算账号关联到您的项目

  2. 升级数据库:默认情况下,由 Google AI Studio 代理创建的 Cloud Firestore 数据库即使在您升级定价方案后,也会继续使用共享配额。如需为特定数据库启用完全付费扩缩,您必须使用 curl 命令手动将其移出组。

    • PROJECT_ID:Firebase 项目 ID;您可以在 Firebase 控制台的项目设置中找到此 ID。

    • DATABASE_IDCloud Firestore 数据库 ID,与您的小程序 ID 匹配;在 Firebase 控制台的 Cloud Firestore 数据库页面上的名称列中找到此数据库 ID。

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=free_tier_limited" \
    -d '{"free_tier_limited": false}'
    

Security Rules生成

Google AI Studio 智能体会根据应用的逻辑自动生成 Firebase Security Rules。这些Security Rules旨在实现“默认拒绝”,这意味着应用的最终用户只能访问他们拥有的数据。

请注意,如果您直接在 Firebase 控制台中手动调整Security RulesGoogle AI Studio 代理将不知道这些更改,并且这些更改会在后续应用迭代期间被覆盖。我们建议您使用 Google AI Studio 智能体调整 Firebase Security Rules,以确保您的更改得以保留并与应用的逻辑保持一致。

使用现有项目

您还可以要求 Google AI Studio 智能体在您拥有的现有 Google Cloud 项目中预配 Cloud Firestore。通过提示指示智能体使用现有项目,例如:

Add Firestore to this app using project PROJECT_ID.
  • 系统将使用共享配额在该项目中预配新的 Cloud Firestore 数据库
  • 将配置 Firebase Authentication 与 Google 登录。
  • 系统将授予服务账号对您的 Cloud Firestore 数据库的访问权限。 为了允许从 Google AI Studio 进行管理员访问,系统将向名为 ais-sandbox@PROJECT_ID.iam.gservice.com 的新服务账号授予访问您的 Cloud Firestore 数据库的权限。此账号仅与您的 Google AI Studio 应用关联。
  • 限制:如果 Firebase 项目已包含 Cloud Firestore 数据库,智能体将无法添加额外的数据库。您需要创建一个新的空项目以供使用。

使用 Firebase 控制台

您可以在 Firebase 控制台中查看应用的数据和设置。如需访问与 Google AI Studio 关联的项目,请按照以下步骤操作:

  1. 前往 Firebase 控制台,然后选择标记为 AI Studio 的项目。

  2. 在左侧导航窗格中,点击构建 > Cloud Firestore 数据库,以查看和修改 Cloud Firestore 中的数据;或者点击构建 > Authentication,以配置 Authentication 设置和数据。

问题排查和常见问题解答

查找常见问题的解答,并了解如何在将 Firebase 与 Google AI Studio 应用集成时解决问题。

如何选择我的 Google Cloud / Firebase 项目?

当您使用添加 Firebase 后端功能时,Google AI Studio 代理会自动选择一个 Firebase 项目,用于应用的后端服务(Cloud FirestoreFirebase Authentication)。

如果您想改用特定项目,可以通过以下提示指示代理这样做:

Use project PROJECT_ID for the Firebase backend.

如果您以后决定将应用发布到 Cloud Run,请务必继续使用同一项目。选择其他项目会导致错误,因为该项目与用于后端的项目不匹配。

支持哪些身份验证方法?

当您使用添加 Firebase 后端功能时,Google AI Studio 智能体会设置 Google 登录。如需设置其他方法,请在 Firebase 控制台中启用这些方法,并让 Google AI Studio 智能体协助您更新代码库。

我可以使用 Google AI Studio 创建移动应用(例如 Android 或 iOS)吗?

目前,Google AI Studio 代理只能创建 Web 应用。如需详细了解受支持的应用,请参阅 Google AI Studio 代理文档

不过请注意,与所有 Web 应用一样,Google AI Studio 创建的应用可以作为移动 Web 应用通过安装在移动设备上的浏览器进行访问。

什么是 firebase-blueprint.json 文件?

这是 Google AI Studio 智能体用于了解应用代码库的中间文件。请勿手动修改此文件,因为这可能会导致代理生成不正确的代码或不安全的Security Rules

如果我收到“已超出配额”错误,该怎么办?

达到 Cloud Firestore 配额限制意味着,您的应用已达到 Cloud Firestore 数据库共享配额组的每日使用上限。您可以通过以下两种方式解决此问题:

  • 方法 1:等待:配额每天会在美国太平洋时间零点左右重置。
  • 方法 2:升级:升级到随用随付 Blaze 定价方案。
    • 如果 Google AI Studio 智能体为您设置了 Cloud Firestore,您必须使用添加结算信息以获取更多 Cloud Firestore 配额中所述的 curl 命令,将数据库移到常规付费状态。如果您手动设置了 Cloud Firestore,则无需运行 curl 命令。

如果我收到“缺少权限或权限不足”错误,该怎么办?

当应用尝试读取或写入 Cloud Firestore 数据库中的数据,但请求被Security Rules拒绝时,会发生此错误。这表示Security Rules不允许基于当前身份验证状态或数据路径执行尝试的操作。点击修复错误按钮,提示 Google AI Studio 代理尝试修正Security Rules

删除 Google AI Studio 应用后,我的 Firebase 后端会发生什么情况?

Google AI Studio 中删除应用不会自动删除关联的 Firebase 项目、Cloud Firestore 数据库或 Firebase Authentication 配置。

如果您添加了 Firebase 后端,则必须手动前往 Firebase 控制台,然后删除项目或清理各个资源(例如 Cloud Firestore 数据库实例和 Authentication 提供程序),以确保移除所有数据和配置。

Google AI Studio 智能体能否删除或修改我的 Cloud Firestore 数据库中的数据?

Google AI Studio 智能体旨在帮助预配必要的后端资源,并生成代码和 Security Rules。虽然代理本身无法直接删除、修改或操纵 Cloud Firestore 数据库中的数据条目,但它可以将旨在执行这些操作的代码写入小程序。如需执行数据管理任务(例如删除条目),请前往 Firebase 控制台中的 Cloud Firestore 数据库页面

我所在的组织使用 Google Cloud;我可以将 Google AI Studio 应用连接到组织 Google Cloud 环境中的现有项目吗?

确保您的 Firebase 项目位于特定的 Google Cloud 组织文件夹中:

  1. 提前手动创建 Firebase 项目。

  2. Google AI Studio 中设置 Firebase 后端时,指示智能体使用您的现有项目:

    Add Firestore to this app using project PROJECT_ID.
    

为什么我在 Firebase 控制台中找不到某些文档?

当 AI Studio 代理将数据保存到嵌套路径(例如 /users/user1/messages/msg1)而不先创建父级文档 (user1) 时,它会创建所谓的不存在的父级文档。这些文档不会显示在 Firebase 控制台中,因此在浏览 Cloud Firestore 数据库时很难找到它们。虽然这不会影响应用的运行方式,但您通常可以向 AI Studio 代理描述问题,以提示其创建缺少的父级文档。

如需了解详情,请参阅不存在的父级文档

Google 如何在 Google AI Studio 中使用我的数据(例如代码和提示)?

如需详细了解我们如何使用您的数据,请参阅 Gemini API 附加服务条款

我收到了来自 Google Cloud 的邮件,其中提到“您的 Google Cloud 项目的 Google API 密钥可供公开访问”。我需要做什么?

如果您收到了来自 Google Cloud 的邮件,其中提及“您的 Google Cloud 项目的 Google API 密钥可供公开访问”,且邮件中列出的 API 密钥是您的 Firebase API 密钥,请确保该 API 密钥满足以下要求,以便安全地将其包含在代码或配置文件中。您可以在 Google Cloud 控制台内的 API 和服务 > 凭证面板中验证以下信息。

  • 这是您用于 Firebase 应用且仅用于 Firebase 服务的 API 密钥。这些键通常称为 Browser key (auto created by Firebase)Android key (auto created by Firebase)iOS key (auto created by Firebase)
  • 它具有密钥的“API 限制”许可清单中包含的所有必需的 Firebase 相关 API
  • 其“API 限制”许可清单中没有任何其他 API。具体来说,该列表不应包含 Generative Language API

另外,请确保您按照所使用 Firebase 产品的建议,使用 Firebase Security RulesApp Check

如需详细了解 Firebase 的 API 密钥,并查看常见问题解答列表,请参阅了解如何使用和管理 Firebase 的 API 密钥