Firebase 安全规则使用入门

Firebase 安全规则让您能够以完全自定义的方式可靠地保护 Cloud Firestore、Realtime Database 和 Cloud Storage 中的数据。您可以按照本指南中的步骤轻松开始使用规则,确保数据安全,并保护您的应用免受恶意用户攻击。

了解 Firebase 安全规则语言

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

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

设置身份验证

请将 Firebase Authentication 添加到您的应用(如果您尚未添加)。Firebase Authentication 支持多种常见的身份验证方法,并且与 Firebase 安全规则集成,从而提供全面的验证功能。

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

详细了解 Firebase 安全规则和 Firebase Authentication

定义您的数据和规则结构

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

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

在定义数据和规则架构时,请记住规则是否级联取决于产品。使用 Realtime Database 时,规则自上而下发挥作用,浅层规则将替换深层规则。如果某个规则授予对特定路径的读取或写入权限,则也会授予对此路径下所有子节点的访问权限。相比之下,使用 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 安全规则中介绍的步骤进行操作。