欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

Firebase 安全规则入门

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Firebase 安全规则为您在 Cloud Firestore、实时数据库和 Cloud Storage 中的数据提供强大、完全可定制的保护。您可以按照本指南中的步骤轻松开始使用规则,保护您的数据并保护您的应用免受恶意用户的侵害。

了解 Firebase 安全规则语言

在您开始编写规则之前,值得花一些时间查看您正在使用的 Firebase 产品的特定 Firebase 安全规则语言。 Cloud Storage 利用通用表达式语言 (CEL) 的超集,该超集依赖于matchallow语句,这些语句为在定义的路径处设置访问条件。

首先学习Firebase 安全规则语言的核心语法

设置身份验证

如果您还没有这样做,请将Firebase 身份验证添加到您的应用中。 Firebase 身份验证支持许多常见的身份验证方法,并与 Firebase 安全规则集成以提供全面的验证功能。

您可以为您的应用设置额外的自定义身份验证信息。

详细了解Firebase 安全规则和 Firebase 身份验证

定义您的数据和规则结构

您构建数据的方式可能会影响您构建和实施规则的方式。在定义数据结构时,请考虑它们可能对规则结构产生的影响。

例如,在 Cloud Storage 中,您可能希望包含一个表示每个用户的特定角色的字段。然后,您的规则可以读取该字段并使用它来授予基于角色的访问权限。

在定义数据和规则架构时,请记住规则级联或不级联的方式,具体取决于您的产品。使用实时数据库,规则自上而下工作,较浅的规则覆盖较深的规则。如果规则授予特定路径的读取或写入权限,则它还授予对其下所有子节点的访问权限。相比之下,对于 Cloud Firestore 和 Cloud Storage,规则仅适用于数据层次结构的指定级别,您可以编写明确的规则来控制对不同级别的访问。

访问您的规则

要查看现有规则,请使用 Firebase CLI 或 Firebase 控制台。确保始终使用相同的方法编辑规则,以避免错误地覆盖更新。如果您不确定本地定义的规则是否反映了最新更新,Firebase 控制台始终会显示最新部署的 Firebase 安全规则版本。

要从Firebase 控制台访问您的规则,请选择您的项目,然后在左侧导航面板中,点击Storage 。在正确的数据库或存储桶中单击规则

要从 Firebase CLI 访问您的规则,请转到您的firebase.json 文件中注明的规则文件

编写基本规则

在您开发应用程序并了解规则时,请尝试实施规则以解决一些基本用例,包括以下内容:

  • 仅限内容所有者:限制用户对内容的访问。
  • 混合访问:限制用户的写访问,但允许公共读访问。
  • 基于属性的访问:限制对某个组或用户类型的访问。

测试你的规则

如果您在 Firebase 控制台中设置 Firebase 安全规则,则可以使用Firebase 规则游乐场快速验证行为。但是,我们建议您在将更改部署到生产环境之前使用Local Emulator Suite进行更彻底的测试。

部署规则

使用 Firebase 控制台或 Firebase CLI 将您的规则部署到生产环境。按照管理和部署 Firebase 安全规则中概述的步骤操作。