【发布时间】:2020-06-23 08:11:34
【问题描述】:
我不知道如何确保可以将无效的大数据写入我的 Firebase 项目。
我有这个数据结构:
{
"BotLevel" : 3,
"CreateTime" : "2020-03-04T08:58:13.102305Z"
}
还有这个安全规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"games": {
"BotLevel": { ".validate": "true && newData.isNumber() && newData.val().length <= 10"},
"CreateTime": { ".validate": true },
"$other": { ".validate": false }
}
}
}
即使我尝试将newData.val().length 设置为任何内容,当我运行规则时也会出错?
如果没有 length 部分,它也可以很好地验证,即使 val() 验证低于我尝试的任何 x。
我错过了什么?
【问题讨论】:
-
你到底想做什么?验证数字(
BotLevel值)小于给定值或BotLevel值的长度小于某个值。 -
我最初想限制我的数据字段的长度,以确保不会被黑客入侵并让数据库用于填充未经请求的数据。
-
由于
BotLevel是一个数字,您需要检查它的值(它也以某种方式对应于长度检查,例如< 1000 === length < 4)。length属性用于字符串:firebase.google.com/docs/reference/security/database#length
标签: firebase validation firebase-realtime-database firebase-security