授权

识别你的用户只是安全性的一部分。一旦你知道他们是谁,你就需要一种方法来控制他们对数据库中数据的访问。Firebase 数据库规则允许你控制每个用户的访问权限。例如,这里有一组安全规则,允许任何人读取路径/foo/,但没有人写入它:

{
  "rules": {
    "foo": {
      ".read": true,
      ".write": false
    }
  }
}

.read.write 规则级联,因此此规则集授予对 path / foo /以及任何更深层路径(如/foo/bar/baz)的任何数据的读访问权限。请注意,允许访问的 .read.write 规则将覆盖数据库中不允许访问的其他规则; 换句话说,所有适用的,.read.write 规则是 ORed 在一起)。因此,即使路径/foo/bar/baz 上的规则评估为 false,仍将在此示例中授予对/foo/bar/baz 的读取权限。

Firebase 数据库规则包含内置变量和函数,允许你引用其他路径,服务器端时间戳,身份验证信息等。以下是为经过身份验证的用户授予对/users/<uid>/的写访问权限的规则示例,其中是通过 Firebase 身份验证获取的用户的 ID。

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}