Как настроить правила в Firebase, чтобы предотвратить одинаковые псевдонимы?
"RegisterRequests": {
"$uid": {
".write": "$uid === auth.uid && !root.child('Users').child(auth.uid).exists()",
".validate": "newData.hasChildren(['Nickname']) && newData.hasChildren(['Whatever'])",
"Nickname": {
".validate": "newData.val().length > 1 && newData.val().length < 17 && !root.child('Users').child('Nickname').child(newData.val()).exists() && !root.child('RegisterRequests').child('Nickname').child(newData.val()).exists()"
},
"Whatever": {
".validate": "newData.val() > 0 && newData.val() < 6"
},
"$other": { ".validate": false }
}
}
"Users": {
"$uid": {
".read": "$uid === auth.uid",
"Nickname": {
}
}
}
Это мои правила для моей базы данных. Я пытаюсь предотвратить добавление данных, содержащих псевдоним, уже существующий в Users
или же RegisterRequests
, Я думаю, что я потерпел неудачу здесь: !root.child('Users').child('Nickname').child(newData.val()).exists() && !root.child('RegisterRequests').child('Nickname').child(newData.val()).exists()
так как Nickname
имеет значение не дети. Но я не знаю, как сделать эту проверку. Кроме того, я не знаю, является ли это правильным способом проверки дочерних элементов, потому что в этой иерархии мне не хватает дочернего идентификатора. Может кто-нибудь мне помочь?