Firebase 安全规则为您在 Cloud Firestore、实时数据库和 Cloud Storage 中的数据提供强大、完全可定制的保护。您可以按照本指南中的步骤轻松开始使用规则,保护您的数据并保护您的应用免受恶意用户的侵害。
了解 Firebase 安全规则语言
在您开始编写规则之前,值得花一些时间查看您正在使用的 Firebase 产品的特定 Firebase 安全规则语言。 Cloud Storage 利用通用表达式语言 (CEL) 的超集,该超集依赖于match
和allow
语句,这些语句为在定义的路径处设置访问条件。
首先学习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 安全规则中概述的步骤操作。