Порядок свойств в объекте JSON не определен. Поэтому, как только вы вызовете snapshot.val()
, порядок дочерних узлов теряется.
Для поддержания порядка используйте snapshot.forEach()
до l oop над дочерними узлами:
toolboxesRef.orderByChild('timestamp').once('value', snapshot => {
snapshot.forEach(child => {
console.log(child.val())
})
})
Итак, если вы хотите вернуть ключи и значения в res
, вам нужно преобразовать снимок в массив:
toolboxesRef.orderByChild('timestamp').once('value', snapshot => {
let response = [];
snapshot.forEach(child => {
response.push({ key: child.key, value: child.val() });
})
res.json(response);
})