Когда вы выполняете запрос / упорядоченное чтение для базы данных Firebase, потенциально может быть несколько результатов. Таким образом, снимок содержит список этих результатов. Даже если есть только один результат, снимок будет содержать список из одного результата.
Результат, который вы получите из базы данных, содержит три вещи:
- Значение каждого соответствующего узла
- Ключ каждого соответствующего узла
- Порядок, в котором узлы находятся в результате
Когда вы вызываете .val()
для снимка, он преобразует эти три фрагмента информации в объект JSON. И порядок ключей в объекте JSON не определен, поэтому при преобразовании теряется информация о порядке. Поэтому, когда вы обрабатываете весь результат как один большой объект JSON (как это делает ваш код), вы теряете информацию о заказе.
Чтобы предотвратить это, вы должны использовать Snapshot.forEach()
, чтобы перебрать результаты:
await admin.database().ref(`boolsTest`).orderByChild("truthValue").once('value').then((snapshot) =>{
snapshot.forEach((childSnapshot) => {
console.log("Value retuned by the query: " + JSON.stringify(childSnapshot.val()));
})
})