Получение данных из базы данных в реальном времени с помощью orderby - PullRequest
1 голос
/ 07 августа 2020

Я использую приведенный ниже код, который извлекает данные из базы данных users. Я хочу упорядочить его по возрастанию age.

//fetch all data
var starCountRef = firebase.database().ref('users/');
starCountRef.on('value', function(snapshot) {
  console.log(snapshot.val());
});

Прикрепленный снимок экрана для справки:

enter image description here

How can I get the minimum age record to be on top?

Edit :: 1

  1. age is a number in database

I tried order by child with below code but still no expected result.

var starCountRef = firebase.database().ref('users/');
starCountRef.orderByChild("age").on('value', function(snapshot) {
  console.log(snapshot.val());
});

enter image description here

result is still the same введите описание изображения здесь

1 Ответ

0 голосов
/ 07 августа 2020

Вы должны обновить структуру коллекции пользователей, чтобы свойство age было числом (а не строкой). Поэтому вам просто нужно использовать orderBy. Примерно так:

const starCountRef = firebase.database().ref('users').orderByChild("age");
starCountRef.on('value', function(snapshot) {
  console.log(snapshot.val());
});

На данный момент свойство age представляет собой строку, поэтому сортировка не будет вести себя должным образом («11» будет стоять перед «3» или «4»)

...