如何在firebase查询中根据if条件添加where条件?



我正在firebase中编写查询,但我想根据条件添加where()条件。例如,如果存在某些值,则应包括where(),否则正常查询应按原样运行。下面是我的代码。如果条件通过,我使用console.log检查,但查询返回所有结果。请帮我解决这个问题。

const loadPapers = () => {
let t = savedTopifyPapers
if (queryParams.value.key && queryParams.value.value) {
t.orderBy('timeStamp')
.limit(limit.value)
.where(queryParams.value.key.toString(), '==', queryParams.value.value)
} else {
t.orderBy('timeStamp').limit(limit.value)
}
t.onSnapshot((snapshot) => {
const _lastDoc = snapshot.docs[snapshot.docs.length - 1]
firstVisible.value = snapshot.docs[0]
if (_lastDoc) {
lastDoc.value = _lastDoc
}
if (snapshot.empty) {
loadingData.value = false
}
papersData.value = snapshot.docs.map((doc) => {
const data = doc.data()
const id = doc.id
loadingData.value = false
return { id, ...data }
})
papersDataLength.value = papersData.value.length
})
}

感谢任何解决方案!

仅参考collection
let query = firebase.firestore().collection(collectionName).

query = query.where(...)
query = query.where(...)  

和使用条件

if (condition) {
query = query.where(...)
}  

execute query after all clause add.

query.get().then(...)

最新更新