Json Firebase。验证错误
我有一个Firebase数据库,组织如下 如您所见,它是一个字典数组(每个字典包含两个条目,“text”和“tag”) 它包含以下规则。我想做的是确保newData包含一个名为“text”的字符串和一个名为“tag”的字符串Json Firebase。验证错误,json,firebase-realtime-database,firebase-security,Json,Firebase Realtime Database,Firebase Security,我有一个Firebase数据库,组织如下 如您所见,它是一个字典数组(每个字典包含两个条目,“text”和“tag”) 它包含以下规则。我想做的是确保newData包含一个名为“text”的字符串和一个名为“tag”的字符串 { "rules": { ".read": "auth != null", ".write": "!data.exists() || !newData.exists()", //Can write only Array with
{
"rules": {
".read": "auth != null",
".write": "!data.exists() || !newData.exists()",
//Can write only Array with text and tag
".validate": "newData.hasChildren(['text', 'tag'])",
"$other": {
".validate": false
},
"text": {
".validate": "newData.isString()"
},
"tag": {
".validate": "newData.isString()"
}
}
}
当我给它以下JSON时,它在第10行(”.validate)上说“模拟写入被拒绝”:“newData.haschilds(['text','tag']),
)
JSON文件:
{
"3": {
"text": "text message",
"tag": "this is a tag"
}
}
我应该如何写我的规则?
谢谢您的帮助。您将验证规则定义得太高了一级。现在验证整个数据库是否有子项
标记
和文本
,但它没有。相反,您希望验证根节点下的每个子节点是否都有这些子节点,这需要您定义如下的$
变量规则:
{
"rules": {
".read": "auth != null",
"$childid": {
".write": "!data.exists() || !newData.exists()",
//Can write only Array with text and tag
".validate": "newData.hasChildren(['text', 'tag'])",
"$other": {
".validate": false
},
"text": {
".validate": "newData.isString()"
},
"tag": {
".validate": "newData.isString()"
}
}
}
}