了解 Firebase 项目

此页面简要概述了与 Firebase 项目有关的几个重要概念。您可以点击相应链接(如果有),以详细了解功能、服务甚至其他平台。在此页面的底部,您可以找到 Firebase 项目的一般最佳做法列表。

Firebase 项目、应用和产品之间的关系

Firebase 项目是 Firebase 的顶级实体。在项目中,您可以添加 Firebase 应用,可以是 iOS,Android 或 Web 应用。在将应用配置为使用 Firebase 之后,您可以为任意数量的 Firebase 产品(如 Analytics、Cloud Firestore、性能监控或远程配置)添加 Firebase SDK。

如需详细了解此流程,请参阅“使用入门指南”( iOS | Android | Web | Unity | C++ )。

Firebase 项目与 Google Cloud Platform (GCP) 之间的关系

在 Firebase 控制台中创建新的 Firebase 项目时,您实际上是在幕后创建 Google Cloud Platform (GCP) 项目。您可以将 GCP 项目视为数据、代码、配置和服务的虚拟容器。Firebase 项目就是一个具有其他 Firebase 特定配置和服务的 GCP 项目。 您甚至可以先创建 GCP 项目,然后再将 Firebase 添加到该项目中。

由于 Firebase 项目也是 GCP 项目,因此:

设置 Firebase 项目并添加应用

您可以在 Firebase 控制台中设置 Firebase 项目并添加应用(或者,对于高级用例,可以通过 Firebase Management REST API 执行这些操作)。设置项目并添加应用时,您需要做出一些配置决策,并向本地项目添加特殊配置文件或对象。

在设置项目并添加应用之前,请务必了解一些一般最佳做法

项目名称

创建项目时,您需要提供项目名称。此标识符是您的项目在 Firebase 控制台GCP ConsoleFirebase CLI 中的仅限内部使用的名称。项目名称不会在任何公开可见的 Firebase 或 GCP 产品、服务或资源中公开;它只用来帮助您更轻松地区分您的各种项目。

您可以随时在项目设置中修改项目名称。您的项目名称会显示在顶部窗格中。

项目编号

您的 Firebase 项目(及其关联的 GCP 项目)有一个项目编号。这是项目全局唯一的规范化标识符。在配置集成和/或对 Firebase、Google 或第三方服务进行 API 调用时,需要使用此标识符。

API 调用和项目编号

对于许多 API 调用,您需要添加项目的唯一标识符。 尽管许多 API 都接受项目 ID,但我们建议您在对 Firebase、Google 或第三方服务进行 API 调用时使用项目编号

如需详细了解如何使用项目标识符(尤其是项目编号),请参阅 Google 的 AIP 2510 标准

查找您的项目编号

  • Firebase CLI:运行 firebase projects:list。系统会显示您的项目编号以及与您的帐号相关联的所有 Firebase 项目。

  • Firebase Management REST API:调用 projects.list。 响应正文中的 FirebaseProject 对象内包含您的项目编号。

项目 ID

您的 Firebase 项目(及其关联的 GCP 项目)有一个项目 ID。 这是您的项目在 Firebase 和 GCP 中各个位置的用户定义唯一标识符。当您创建 Firebase 项目时,Firebase 会自动为您的项目分配一个唯一 ID,但您可以在设置过程中对其进行修改。通常,应将此标识符视为用于引用您的项目的方便别名。

如果您删除项目,项目 ID 也会被删除,并且任何其他项目都不能再次使用此 ID。

Firebase 资源和项目 ID

项目 ID 会显示在公开可见的 Firebase 资源中,例如:

  • 默认托管子域名 - projectID.web.appprojectID.firebaseapp.com
  • 默认实时数据库网址 - projectID.firebaseio.com
  • 默认 Cloud Storage 存储分区名称 - projectID.appspot.com

对于上述所有资源,您可以创建非默认实例。 非默认实例的公开可见名称在各个方面都可自定义。 您可以将自定义网域关联到 Firebase 托管网站,对实时数据库进行分片,并创建多个 Cloud Storage 存储分区(访问相应平台的“使用入门”页面)。

Firebase CLI 和项目 ID

对于某些使用情形,您可能有多个与同一本地应用目录关联的 Firebase 项目。在这些情况下,当您使用 Firebase CLI 时,您需要将 --project 标识 与 firebase 命令一起传递,来传达您要与之互动的 Firebase 项目。

您还可以为各种 Firebase 项目设置项目别名,这样您就不必记住项目 ID 了。

API 调用和项目 ID

对于许多 API 调用,您需要添加项目的唯一标识符。 尽管许多 API 都接受项目 ID,但我们建议您在对 Firebase、Google 或第三方服务进行 API 调用时使用项目编号

如需详细了解如何使用项目标识符(尤其是项目编号),请参阅 Google 的 AIP 2510 标准

查找您的项目 ID

  • Firebase 控制台:点击 > 项目设置。您的项目 ID 会显示在顶部窗格中。

  • Firebase CLI:运行 firebase projects:list。系统会显示您的项目 ID 以及与您的帐号相关联的所有 Firebase 项目。

  • Firebase Management REST API:调用 projects.list。 响应正文中的 FirebaseProject 对象内包含您的项目 ID。

Firebase 配置文件和对象

当您将应用添加到 Firebase 项目时,Firebase 控制台会提供一个 Firebase 配置文件(Android/iOS)或您直接添加到本地项目的配置对象(Web)。

  • 对于 iOS,请添加 GoogleService-Info.plist 配置文件
  • 对于 Android,需要添加 google-services.json 配置文件
  • 对于 Web,您可以为初始化脚本添加 Firebase 配置对象

您可以随时获取 Firebase 配置文件或配置对象

Firebase 配置文件或配置对象会将您的应用与 Firebase 项目及其资源(数据库、存储分区等)相关联。配置包括“Firebase 选项”,这是让 Firebase 和 Google 服务与 Firebase 服务器 API 通信以及将客户端数据与 Firebase 项目和 Firebase 应用相关联所必需的一些参数。至少需要包括以下 Firebase 选项:

  • API 密钥:在调用不需要访问私有用户数据的某些 API 时使用的简单加密字符串(示例值:AIzaSyDOCAbC123dEf456GhI789jKl012-MnO

  • 项目 ID:您的项目在 Firebase 和 GCP 中各个位置的用户定义唯一标识符。(示例值:myapp-project-123)。此标识符可能会出现在某些 Firebase 资源的网址或名称中,但通常应将其视为用于引用您的项目的方便别名。

  • 应用 ID(“AppID”):您的 Firebase 应用在 Firebase 中各个位置的唯一标识符,其格式取决于平台:

    • Firebase Android 应用:mobilesdk_app_id(示例值:1:1234567890:android:321abc456def7890
      这不是一个 Android 软件包名称。
    • Firebase iOS 应用:GOOGLE_APP_ID(示例值:1:1234567890:ios:321abc456def7890
      这不是一个 Apple 软件包 ID。
    • Firebase Web 应用:appId(示例值:1:65211879909:web:3ae38ef1cdcb2e01fe5f0c

Firebase 配置文件的内容被视为公开内容,包括针对具体平台的 ID(在 Firebase 控制台设置工作流中输入)以及您的 Firebase 项目的相关值(例如您的 API 密钥、实时数据库网址和 Cloud Storage 存储分区名称)。考虑到这一情况,请使用安全规则来保护实时数据库Cloud FirestoreCloud Storage 中的数据和文件。

对于开源项目,我们通常不建议将您的配置文件或配置对象加入到源代码控制系统中,因为在大多数情况下,用户应该创建自己的 Firebase 项目并将其应用指向自己的后端。

管理 Firebase 项目

请务必查看一般项目级层最佳做法,以了解可能会影响您的 Firebase 项目管理方式的注意事项。

项目管理工具

Firebase 控制台

Firebase 控制台为管理 Firebase 产品、应用和项目级层设置提供了最丰富的环境。

Firebase 控制台 - 项目概览屏幕

控制台的左侧面板列出了按顶级类别整理的 Firebase 产品。在左侧面板的顶部,您可以点击 设置(设置包括集成访问权限结算)来访问项目设置。

控制台中间显示了用于启动设置工作流以添加各种类型应用的按钮。在您开始使用 Firebase 后,控制台的主要区域会变为一个信息中心,其中显示了您使用的产品的统计信息。

Firebase CLI(命令行工具)

Firebase 还提供 Firebase CLI 以用于配置和管理特定 Firebase 产品(例如 Firebase 托管和 Cloud Functions for Firebase)。

使用 npm 安装 CLI 后,您可以访问全局 firebase 命令。使用 CLI 可以部署 Firebase 托管内容的新版本或您的函数更新。您还可以使用 CLI 将本地应用目录关联到 Firebase 项目

Firebase 管理 REST API

使用 Firebase Management REST API,您可以通过编程方式管理 Firebase 项目。例如,您可以通过编程方式在项目中添加 Android 应用iOS 应用。您还可以列出项目中的应用(Android/iOS)。

一般最佳做法

将应用添加到项目中

确保一个项目中的所有应用在最终用户眼里是相同应用的不同平台变体。建议您将同一应用或游戏的 Android、iOS 和 Web 版本添加到同一个 Firebase 项目。项目中的所有应用通常共用相同的 Firebase 资源(数据库、存储分区等)。

如果您有多个指定了不同 iOS 软件包 ID 或 Android 应用 ID 的构建版本,则可以在不同的 Firebase 项目中添加各个构建版本。但是,如果您有共享相同 Firebase 资源的变体,请将其添加到同一 Firebase 项目中。

项目中的应用数量是没有限制的,但添加一个应用可能会创建一个或多个基础 OAuth 2.0 客户端 ID。在一个项目中只能创建大约 30 个客户端 ID。

多租户

建议您不要将多个不同的逻辑上独立的应用和/或网站关联到一个项目(通常称为“多租户”)。多租户可能会导致严重的配置和数据隐私问题,包括分析聚合、共享身份验证、过于复杂的数据库结构以及安全规则存在问题等意外问题。

通常,如果一组应用并非共用相同的数据和配置,则强烈建议您将每个应用关联到不同的 Firebase 项目。

例如,如果您开发一个白标应用,则每个独立加标签的应用都应该有自己的 Firebase 项目。每个应用都不会也不应该(出于保护隐私权的考虑)与其他应用共用数据。

请注意 Firebase 项目、应用和网站的一些一般限制:

  • 每个帐号的项目数量

    • Spark 免费方案 - 您只能拥有少量项目配额(通常约为 5-10 个)。
    • 付费方案 - 只要您的 Cloud 结算帐号信誉良好,您的每个结算帐号都能拥有大量项目配额。

    大多数开发者很少关注项目配额限制,但如果您有需要,可以请求增加项目配额

    请注意,要彻底删除项目,需要 30 天时间,且在彻底删除前,被删除项目计入您的项目配额。

  • 每个项目的应用数量

    项目中的应用数量是没有限制的,但添加一个应用可能会创建一个或多个基础 OAuth 2.0 客户端 ID。在一个项目中只能创建大约 30 个客户端 ID。

  • 每个项目的托管网站数

    Firebase 托管多网站功能支持每个项目最多 36 个网站。

发布您的应用