如何将验证安全规则应用于 Firebase 实时数据库中的密钥
How can I apply a validation security rule to the key in Firebase's Realtime Database
我对 Firebase 实时数据库的验证安全规则有些困惑。我目前设置数据库的方式如下所示:
(Database ID)
users
(Google UID)
dayRatings
2022-01-01: 2
2022-01-02: 4
2022-01-03: 5
settings
(Not implemented yet)
(Google UID)
dayRatings
2022-01-01: 3
2022-01-02: 1
2022-01-03: 1
settings
(Not implemented yet)
用户可以添加自己的评分,但评分未经验证。我想验证评级的键(例如 2022-01-01
)和值,但我对如何对这些进行验证感到困惑,因为键可能因用户的选择而异。
现在,我的安全规则只确保用户只能读取和写入他们自己的文档,但不会以任何方式验证数据。
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}
如果密钥不固定,如何进行验证?我的数据库结构是否正确?
如有任何帮助,我们将不胜感激。
您可以为日期添加另一个 wildcard capture variable:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
"$date": { // capture any child node
".validate": "..." // validate its value
}
}
}
}
}
这里的$date
和$uid
是一样的,只是变量名不同,在JSON.
中级别不同
我对 Firebase 实时数据库的验证安全规则有些困惑。我目前设置数据库的方式如下所示:
(Database ID)
users
(Google UID)
dayRatings
2022-01-01: 2
2022-01-02: 4
2022-01-03: 5
settings
(Not implemented yet)
(Google UID)
dayRatings
2022-01-01: 3
2022-01-02: 1
2022-01-03: 1
settings
(Not implemented yet)
用户可以添加自己的评分,但评分未经验证。我想验证评级的键(例如 2022-01-01
)和值,但我对如何对这些进行验证感到困惑,因为键可能因用户的选择而异。
现在,我的安全规则只确保用户只能读取和写入他们自己的文档,但不会以任何方式验证数据。
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}
如果密钥不固定,如何进行验证?我的数据库结构是否正确?
如有任何帮助,我们将不胜感激。
您可以为日期添加另一个 wildcard capture variable:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
"$date": { // capture any child node
".validate": "..." // validate its value
}
}
}
}
}
这里的$date
和$uid
是一样的,只是变量名不同,在JSON.