photoJson
が一意であるデータベースに画像情報をアップロードしたいとします。挿入する前に、データベースにすでに存在するかどうかを確認したい。だから私はこのルールを書きました。アプリ内で情報をアップロードすると、データを複製しています。私はこのような疑問が既に存在することを知っていますが、私は解決策を試してみました。firebaseルールでデータベースに同じデータが存在するかどうかチェック
{
"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()"
}
}
}
}
}
すでにノードのコレクション内に存在する特定の値のセキュリティルールでの方法はありません。例については、https://stackoverflow.com/q/35243492、https://stackoverflow.com/q/24820597、 –
@FrankvanPuffelenを参照してください。次に、「.validate」とは何ですか?:!!root.child( 'wallpapers') .child(newData.val())。exists() "、"ステートメントは実際に行っていますか? –
'newData.val()'という名前の子が 'wallpapers'の場所に存在するかどうかをチェックします。 –