Подтвердить что ты не робот

Проверьте, существует ли значение в базе данных firebase DB

Есть ли метод в firebase, который может проверить, существует ли значение в БД? Firebase имеет метод . Exists(), но согласно документам он проверяет только ключи.

У меня есть следующая структура:

{
  "users": {
    "-KKUmYgLYREWCnWeHCvO": {
      "fName": "Peter",
      "ID": "U1EL9SSUQ",
      "username": "peter01"
    },
    "-KKUmYgLYREWCnWeHCvO": {
      "fName": "John",
      "ID": "U1EL5623",
      "username": "john.doe"
    }
  }
}

Я хочу проверить, существует ли идентификатор со значением U1EL5623.

4b9b3361

Ответ 1

Нет явного метода exists(), но вы можете работать со следующей логикой для его обработки.

ref.child("users").orderByChild("ID").equalTo("U1EL5623").once("value",snapshot => {
    const userData = snapshot.val();
    if (userData){
      console.log("exists!");
    }
});

Замечания:

Если вы находитесь в другом сценарии, в котором у вас есть точный путь ref, где вам может понадобиться объект orderByChild и equalTo. В этом случае вы можете напрямую выбрать путь к объекту, поэтому ему не нужна обработка поиска из firebase. Также в этом случае , если вы знаете одно из свойств, которое должен иметь объект, вы можете сделать как сниппет ниже и заставить его получить только это свойство, а не весь объект. Результат будет намного быстрее.

//every user must have an email
firebase.database().ref(`users/${userId}/email`).once("value", snapshot => {
   const email = snapshot.val();
   if (email){
       console.log("user exists!");
   }
});