[英]Unable to perform a Firebase query on a timestamp and receiving an empty body in response
有人可以向我解釋為什么我無法執行簡單的 Firebase 查詢檢查子集合中的特定時間戳嗎? 如果我嘗試檢索整個文檔,則下面的代碼可以工作,但如果我添加where
查詢,它只會返回一個 200 響應和一個空正文。 我還嘗試將db.collection
替換為db.collectionGroup
,在這種情況下,我收到 500 響應,並顯示以下消息Collection IDs must not contain '/'
。
在這里,您可以看到我是如何構建數據和代碼的:
try {
const reference = db.collection(`/data/10546781/history`).where("timestamp", "==", 1659559179735)
const document = await reference.get()
res.status(200).json(document.forEach(doc => {
doc.data()
console.log(doc.data())
}))
} catch(error) {
res.status(500).json(error)
console.log(error)
};
看來您正在尋找創建新數組的map()
而不是不返回任何內容的forEach()
循環。 嘗試:
const reference = db.collection(`/data/10546781/history`).where("realtimeData.timestamp", "==", 1659559179735)
const snapshot = await reference.get()
const data = snapshot.docs.map((d) => ({
id: d.id,
...d.data()
}))
res.status(200).json(data)
此外,如果要基於嵌套字段進行查詢,則需要使用點表示法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.