Итак, «findOneAndUpdate» требует опции для возврата исходного документа. И, опция:
{returnNewDocument: true}
Ссылка: https://docs.mongodb.com/manual/reference /method/db.collection.findOneAndUpdate/
{new: true}
Ссылка: http://mongoosejs.com /docs/api.html#query_Query-findOneAndUpdate
{returnOriginal: false}
Ссылка: http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#findOneAndUpdate
Как только вы звоните snapshot.val()
, вы теряете всю информацию о заказе снимка, на котором вы его вызываете. Это связано с тем, что свойства в объекте JSON не имеют определенного порядка.
Итак, вам нужно перебрать совпадающие узлы с помощью встроенной функции DataSnapshot.forEach()
:
const commentsRef = firebase.database().ref("Comments/News").orderByChild("date").limitToLast(5);
commentsRef.on("value", snapshot => {
let newState = [];
snapshot.forEach(symptomSnapshot => {
let symptom = symptomSnapshot.val();
newState.push({
id: symptomSnapshot.key,
comment: symptom.comment,
date: symptom.date
});
});
// TODO: this is where you'll typically call setState(...)
});