我设置了实时侦听器,我已对数据进行了排序,但我只想检索最新的数据值。
我尝试添加.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
,则每个货车的所有数据值都正常显示。
答案 0 :(得分:0)
您是说limit(1)
?
db.collection('Call Information')
.orderBy("time", "desc")
.limit(1)
.onSnapshot(snapshot => {