Как настроить правила в 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 имеет значение не дети. Но я не знаю, как сделать эту проверку. Кроме того, я не знаю, является ли это правильным способом проверки дочерних элементов, потому что в этой иерархии мне не хватает дочернего идентификатора. Может кто-нибудь мне помочь?

0 ответов

Другие вопросы по тегам