获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Firebase 安全规则入门

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

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

了解 Firebase 安全规则语言

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

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

设置身份验证

如果您还没有这样做,请将Firebase 身份验证添加到您的应用程序中。 Firebase Authentication 支持多种常见的身份验证方式,并与 Firebase Security Rules 集成,提供完善的验证能力。

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

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

定义您的数据和规则结构

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

例如,在 Cloud Storage 中,您可能希望包含一个字段来表示每个用户的特定角色。然后,您的规则可以读取该字段并使用它来授予基于角色的访问权限。您还可以创建 Cloud Firestore 数据库,将访问条件存储在 Cloud Firestore 文档中,然后从 Cloud Storage 安全规则访问这些文档。

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

访问您的规则

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

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

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

编写基本规则

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

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

测试你的规则

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

部署规则

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