我一直在玩Firebase,我遇到了一个问题,我试着查看一些文档,但我找不到合适的答案。
问题是Firebase提供了用户身份验证,这很好,但我可以为此用户设置一些限制吗?那么它只能访问我的数据库方案的一部分?例如:我的数据库上有两个grupos:
https://MYFIREBASE.firebaseio.com/group1/posts/ https://MYFIREBASE.firebaseio.com/group2/posts/
哪个用户有不同的帖子。
谢谢!
答案 0 :(得分:3)
You're looking for Security Rules.
安全规则是服务器端验证,用于限制对Firebase数据库的访问。
以下是只读数据库的规则。
{
"rules": {
".read": true,
".false": false
}
}
安全规则提供保存重要服务器端信息的服务器变量。 The variable you'll be interested in is the auth
variable.
auth变量允许您检查尝试访问数据库的用户是否已通过身份验证。
{
"rules": {
"group1": {
".read": "auth !== null",
".write": "auth !== null"
}
}
}
根据上述规则,只有经过身份验证的用户才能访问/group1
位置。
但是对于基于用户的安全性,您需要使用用户的uid
进行索引。
{
"rules": {
"group1": {
"posts": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
}
和using wildcards (which are basically route parameters),您可以检查用户是否尝试访问数据是否拥有数据。