查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

设置 Firebase 项目的一般最佳做法

本页面提供了有关设置 Firebase 项目和将应用注册到项目中的一般性、高级别的最佳实践,以便您使用不同的环境拥有清晰的开发工作流程。熟悉此页面上的最佳做法后,请查看我们的一般安全指南

了解 Firebase 项目的层次结构

显示 Firebase 项目的基本层次结构的图表,包括项目、其注册的应用以及其预配的资源和服务此图显示了 Firebase 项目的基本层次结构。以下是关键关系:

  • Firebase 项目就像一个容器,用于存放您的所有应用以及为该项目配置的任何资源和服务。

  • Firebase 项目可以注册一个或多个Firebase 应用(例如,应用的 iOS 和 Android 版本,或者应用的免费和付费版本)。

  • 注册到同一个 Firebase 项目的所有 Firebase 应用程序共享并有权访问为该项目配置的所有相同资源和服务。这里有些例子:

    • 注册到同一个 Firebase 项目的所有 Firebase 应用共享相同的后端,例如 Firebase 托管、身份验证、实时数据库、Cloud Firestore、Cloud Storage 和 Cloud Functions。

    • 注册到同一个 Firebase 项目的所有 Firebase 应用都与同一个 Google Analytics(分析)媒体资源相关联,其中每个 Firebase 应用都是该媒体资源中的一个单独的数据流。

Google Cloud 项目在哪里适合此层次结构?

上图中未显示的 Firebase 项目层次结构的一个方面是与 Google Cloud 项目的关系。 Firebase 项目实际上只是一个 Google Cloud 项目,它启用了额外的 Firebase 特定配置和服务。请注意,注册到同一个 Firebase 项目的所有应用也共享并可以访问所有相同的 Google Cloud 资源和服务。

了解 Firebase 项目中详细了解 Firebase 和 Google Cloud 的关系

向 Firebase 项目注册应用变体

以下是向 Firebase 项目注册应用变体的一些重要提示:

  • 从最终用户的角度来看,确保注册到 Firebase 项目的所有应用都是同一应用的平台变体。将同一应用或游戏的 iOS、Android 和 Web 版本注册到同一Firebase 项目。

  • 如果您有多个可以共享相同 Firebase 资源的构建变体,请将这些变体注册到同一个Firebase 项目。一些示例是同一项目中的博客和 Web 应用程序,或者同一项目中同一应用程序的免费和付费版本。

  • 如果您有多个基于发布状态的构建变体(而不是像上面那样基于常见的最终用户活动或访问),请将每个变体注册到单独的 Firebase 项目。一个示例是您的调试与发布版本 - 在其自己的 Firebase 项目中注册这些版本中的每一个。

    • 基于发布状态的构建不应共享相同的 Firebase 资源,因为这可能会导致您的调试数据污染甚至覆盖您的产品数据。

    • 每个构建变体的平台变体都应该在同一个Firebase 项目中。例如,在“开发”Firebase 项目中注册 iOS 和 Android 调试版本,因为它们都可以与相同的非产品数据和资源进行交互。

避免多租户

多租户可能会导致严重的配置和数据隐私问题,包括分析聚合、共享身份验证、过于复杂的数据库结构以及安全规则方面的问题。

通常,如果一组应用不共享相同的数据和配置,强烈考虑将每个应用注册到不同的 Firebase 项目。

例如,如果您开发一个白标应用程序,每个独立标记的应用程序都应该有自己的 Firebase 项目,并且该标签的 iOS 和 Android 版本应该在同一个 Firebase 项目中。每个独立标记的应用程序不应(出于隐私原因)与其他应用程序共享数据。

下一步