授权
识别你的用户只是安全性的一部分。一旦你知道他们是谁,你就需要一种方法来控制他们对数据库中数据的访问。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"
}
}
}
}