Проверьте, существует ли дочернее значение - Firebase / React - PullRequest
0 голосов
/ 01 декабря 2018

Я работаю над проектом React.js, пытаясь проверить, существует ли конкретная электронная почта в моей базе данных Firebase, прежде чем выполнять какую-либо функцию.

В этом примере у меня есть 2 разных электронных письма "jonh@ doe.com "и" bob@ford.com "из таблицы" пользователи ".У каждого пользователя есть свой идентификатор:действительно не знаю, как это сделать.Я уверен, что это не так сложно сделать ...

Большое спасибо за вашу помощь!Val

1 Ответ

0 голосов
/ 01 декабря 2018

Вы не запрашиваете правильное дочернее свойство.Вам понадобится что-то вроде этого: L

firebase.database().ref().child('users').orderByChild('infos/email').equalTo('my@email.com')
  .limitToFirst(1).once('child_added', snap => {
    if("my@email.com" === snap.val().email){
      formIsValid = false;
    }
})

Это упорядочит дочерние узлы по значению их свойства infos/email, а затем отфильтрует их.Чтобы выполнить это эффективно, вам нужно определить индекс:

{
  "rules": {
    "users": {
      ".indexOn: "infos/email"
    }
  }
}

В качестве дополнительного трюка этот код использует limitToFirst(1) и child_added (вместо value), так как вас интересует толькоо существовании подходящего ребенка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...