识别用户只是安全性的一部分。一旦知道了他们是谁,便需要一种方法来控制他们对数据库中数据的访问。Firebase数据库规则允许您控制每个用户的访问权限。例如,这是一组安全规则,允许任何人读取该路径/foo/,但没有人可以写入该路径:
{ "rules": { "foo": { ".read": true, ".write": false } } }
.read和.write规则级联,因此此规则集授予对/ foo /路径以及任何更深层路径(如)的任何数据的读取访问权限/foo/bar/baz。需要注意的是.read和.write规则,允许访问将覆盖不允许访问数据库中的其他规则; 换句话说,所有适用规则都.read与.write规则进行“或”运算。因此/foo/bar/baz,即使路径中的规则/foo/bar/baz评估为false,在此示例中仍将授予对的读取访问权限。
Firebase数据库规则包括内置变量和函数,可让您引用其他路径,服务器端时间戳,身份验证信息等。这是一个规则的示例,该规则向授予已认证用户的写访问权限/users/<uid>/,其中是通过Firebase身份验证获得的用户ID。
{ "rules": { "users": { "$uid": { ".write": "$uid === auth.uid" } } } }