【发布时间】:2017-06-23 20:52:09
【问题描述】:
我想上传photoJson唯一的数据库中的图像信息。在插入之前,我想检查它是否已经存在于数据库中。所以我写了这条规则。当我在应用内上传信息时,它正在复制数据。我知道这样的问题已经存在,但我测试了解决方案,但它不起作用。
{
"rules": {
"wallpapers" :{
".read": true,
".write" : true,
"$wallpaper":{
"photoJson": {
//Checking if same wall already exists
".validate": "!root.child('wallpapers').child(newData.val()).exists()",
},
"url": {
".validate": "newData.isString()"
},
"thumbUrl": {
".validate": "newData.isString()"
},
"likes": {
".validate": "newData.isNumber()"
},
"dislikes": {
".validate": "newData.isNumber()"
},
"favorites": {
".validate": "newData.isNumber()"
}
}
}
}
}
【问题讨论】:
-
没有办法在节点集合中已经存在某个值的安全规则。例如,请参阅stackoverflow.com/q/35243492、stackoverflow.com/q/24820597、
-
@FrankvanPuffelen 那么
".validate": "!root.child('wallpapers').child(newData.val()).exists()",语句实际上在做什么? -
它检查名称为
newData.val()的孩子是否存在于wallpapers位置。
标签: android firebase firebase-realtime-database