У меня настроен прослушиватель в режиме реального времени, я заказал данные, но я хочу получить только самое последнее значение данных.
Я пытался добавить .limit (1), но он не работает
const callSheet = document.querySelector('#call-sheet');
const form = document.querySelector('#add-call-form');
// create element and render calls
function renderCall(doc){
// tags
// unique firestore document id
let li = document.createElement('li');
let van = document.createElement('span');
let time = document.createElement('span');
let ete1 = document.createElement('span');
let ete2 = document.createElement('span');
if (doc.data().van == 3) {
// set document id
li.setAttribute('data-id', doc.id);
// set other data fields
van.innerHTML = "Van " + doc.data().van + '<br />'
time.innerHTML = "Last dispatched at " + doc.data().time + '<br />';
ete1.textContent = "ETE: " + doc.data().ete1 + " - " + doc.data().ete2 + " minutes";
li.appendChild(van);
li.appendChild(time);
li.appendChild(ete1);
callSheet.appendChild(li);
}
}
// retrieve the Call Information collection
// snapshot is what you get back from the method call
// (a representation of the different data in the collection)
// real-time listener:
db.collection('Call Information').orderBy("time", "desc").limit(1).onSnapshot(snapshot => {
let changes = snapshot.docChanges();
changes.forEach(change => {
if(change.type == 'added'){
renderCall(change.doc)
} else if (change.type == 'removed'){
let li = callSheet.querySelector('[data-id=' + change.doc.id + ']');
callSheet.removeChild(li);
}
})
})
Я пытаюсь получить последний 1 документ для каждого фургона, но даже если в базе данных есть документы для каждого фургона, когда я изменяю if (doc.data().van == 3)
на любое другое значение (например, 1 или2), данные не отображаются.Если я удаляю orderBy
и limit
, все значения данных отображаются нормально для каждого фургона.