У меня есть эта структура
Events {
ID: { //Event ID
name: ...
image: ...
}
}
Я бы хотел использовать правила для предотвращения этой команды:
Firebase.getInstance().getReference().child(Events).child(ID).setValue(null);
(например, если мой HashMap пуст и вместо setValue что-тоЯ просто установил значение на ноль (однажды я удалил всю свою базу данных из-за этого))
Но я все еще хочу быть в состоянии сделать это:
Firebase.getInstance().getReference().child(Events).child(ID).removeValue();
У меня есть эти правилана данный момент:
"Events" : {
"$Ev_key" : {
".write":"auth.uid!=null",
".read":"auth.uid != null",
".validate" : "newData.hasChildren(['name']) || newData.hasChildren(['image'])",
"name" : {
".validate" : "newData.isString() && newData.val().length < 25"
},
"image" : {
".validate" : "newData.isNumber() && newData.val() >= 0 && newData.val() <= 100"
},
"$other": {
".validate": false
}
}
},
=> они позволяют мне:
-.... child ("имя"). setValue ("Something") -.... child ("image"). setValue ("Something")
- создать HashMap с именем, изображением и обновить дочерние элементы.
/ !! \ Но, тем не менее, если я попытаюсь сделать Events / ID и отправить nullJson, то симуляция будет успешной, и в ней будет написано «Валидация проигнорирована». И все же я понятия не имею, как дифференцировать setValue ()и методы removeValue (), поскольку я могу только устанавливать, обновлять и читать.