Firebase orderByChild без повторных данных - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь сортировать и отображать данные о базе данных, но я застрял. Моя база данных выглядит так:

enter image description here

Мне нужно отсортировать данные по nr_of_matches, и я могу сделать это, выполнив такой запрос:

      const ref = firebase.database().ref('Matches/'+db_name).orderByChild('nr_of_matches')

      ref.once('value', function (snapshot) {
      snapshot.forEach(function (childSnapshot) {
      const matches = childSnapshot.val().matches
      const nr_of_matches = childSnapshot.val().nr_of_matches
      const the_matched = childSnapshot.val().the_matched
      console.log("matches : "+matches)

    });
    });

Однако я получаю повторяющиеся данные, делая это следующим образом. Чтобы не получать повторяющиеся данные, я могу сделать это так:

      const ref = firebase.database().ref('Matches/'+db_name+"/"+child.key).orderByChild('nr_of_matches')

      ref.on('value', function (snapshot) {
      const matches = snapshot.val().matches
      const nr_of_matches = snapshot.val().nr_of_matches
      const the_matched = snapshot.val().the_matched
      console.log("matches : "+matches)

    });

, но тогда они больше не сортируются. Любая идея, как это разобраться?

1 Ответ

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

Если вы не хотите получать повторяющиеся данные, вы можете использовать query:

      const ref = firebase.database().ref('Matches/'+db_name+"/").orderByChild('nr_of_matches').equalto(2);

      ref.on('value', function (snapshot) {
      const matches = snapshot.val().matches
      const nr_of_matches = snapshot.val().nr_of_matches
      const the_matched = snapshot.val().the_matched
      console.log("matches : "+matches)

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