全新推出 Cloud Firestore(测试版):试用 Firebase 和 Google Cloud Platform 全新推出的规模可扩展且灵活的数据库。详细了解 Cloud Firestore

数据库规则使用入门

Firebase 实时数据库提供灵活的基于表达式的规则语言(具有类似于 JavaScript 的语法),让您可以轻松定义您的数据结构、如何将您的数据编入索引,以及何时读取和写入数据。结合使用我们的身份验证服务,您可以定义谁能够访问什么数据,并保护您用户的个人信息免遭未经授权的访问。

配置规则

您可以在 Firebase 控制台中找到并更改您的数据库的规则。首先,请选择自己的项目,点击左侧的数据库部分,然后选择规则标签。如果您希望在正式使用之前测试您的安全规则,则可使用规则编辑器右上角的“模拟”按钮在控制台中模拟运行。

您还可以使用我们的命令行界面更新您的规则。当您想以编程方式更新您的规则时,例如从自动部署系统更新规则,此功能尤其有用。

示例规则

默认情况下,您的数据库规则需要 Firebase 身份验证,并且仅向通过身份验证的用户授予完全读写权限。默认规则可确保在您有机会配置数据库之前,任何人不能访问您的数据库。设置完成后,您可以根据您的需要自定义规则。以下是一些常见示例:

默认

默认规则要求进行身份验证,允许通过身份验证的应用用户具有完全读写权限。当您希望数据对应用的所有用户开放,但不对整个世界开放时,此功能会很有用。

// These rules require authentication
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

公开

在开发期间,您可以使用公开规则代替默认规则,将您的文件设置为可公开读写。这对于原型设计非常有用,因为您不需要设置身份验证即可开始此项工作。此访问级别意味着任何人都可以读取您的数据库。在启动应用之前,您应配置更安全的规则。

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

用户

以下是一个规则的示例,该规则会为每个通过身份验证的用户授予一个位于 /users/$user_id 的个人节点,其中 $user_id 是通过身份验证获取的用户 ID。对于具有用户私密数据的应用而言,这种情况很常见。

// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

私用

私用规则将禁用用户对您的数据库的读写访问权限。如果使用这些规则,您仅可以通过 Firebase 控制台访问数据库。

// These rules don't allow anyone read or write access to your database
{
  "rules": {
    ".read": false,
    ".write": false
  }
}

您在发布应用之前必须正确配置这些规则,以确保您的用户只能访问限定他们访问的数据。

后续步骤

发送以下问题的反馈:

此网页
Firebase 实时数据库
需要帮助?请访问我们的支持页面