Я новый в firebase, и я хочу знать, как выяснить вопрос о hasChildren() RuleDataSnapshot и о том, как будут проверяться данные.Избегайте создания дополнительных детей Firebase
Образца дб:
{
"visitors" : {
"-KP4BiB4c-7BwHwdsfuK" : {
"mail" : "[email protected]",
"name" : "aaa",
}
.....
}
Правило:
{
"rules": {
"visitors": {
".read": "auth != null",
".write": "auth.uid != null",
"$unique-id": {
".read": "auth != null ",
".write": "auth != null",
".validate": "newData.hasChildren(['name','mail'])",
}
}
}
}
Насколько я знаю, если я хочу, чтобы создать данные, поле данных должны иметь одни и те же имена, чтобы пройти проверку правил. Например: Если я изменил «имя» на «имена», и я пытаюсь создать новый узел со своими дочерними элементами, то правило работает, насколько я мог это понять. Мне интересно, что случилось, если я вручную добавлю новые поля для создания?
Например:
//Add extra fields which are not actually present
var data = {name : "xxx",mail:"[email protected]",extra1:222,extra:333};
firebase.database().ref('visitors/').push(data);
Результат:
"visitors" : {
"-KP4BiB4c-7BwHwdsfuK" : {
"mail" : "[email protected]",
"name" : "juan",
"extra1":222,
"extra2":333
}
}
Так что мой вопрос заключается в том, чтобы избежать создания дополнительных Чайлдс на узел? Я предположил, что это правило.
Заранее спасибо.