Как я могу получить данные из Firebase - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу выполнить поиск пользователей v ie панель поиска. Когда я ввожу фамилию, я должен получать данные о пользователях, если есть совпадения, но я не знаю как.

вот мой попробуйте

searchBar(){
  let a=app.database().ref('users/'+app.auth().currentUser.uid).orderByChild('/surname').equalTo('Крюкин');
  console.log(a);
}

вот структура данных

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

вы точно не читаете данные из firebase.

Вы должны создать дескриптор, который вы сделали, a в вашем случае, а затем на этом дескрипторе вы регистрируете value прослушиватель событий, приведенный ниже код взят из официальных документов

ref.once('value', function(snapshot) {
  snapshot.forEach(function(childSnapshot) {
    var childKey = childSnapshot.key;
    var childData = childSnapshot.val();
    // ...
  });
});

в вашем случае вы просто хотите

a.on("value",list=>{list.forEach(...)})

, также вы можете подписаться на будущие события child_added / удаленных / обновленных

здесь документы

0 голосов
/ 27 апреля 2020

Попробуйте выполнить следующее:

searchBar(){
      let a=app.database().ref('users');
        a.orderByChild('surname').equalTo('Крюкин').on('value',((snapshot) => {
         snapshot.forEach((childSnapshot) => {
           console.log(childSnapshot.val());
     });
    }

Сначала вы не используете идентификатор пользователя, это случайный идентификатор, сгенерированный с использованием push() в вашей базе данных. Поэтому вам необходимо использовать forEach() для доступа к данным.

Проверьте руководство:

https://firebase.google.com/docs/database/web/read-and-write

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