簡體   English   中英

如何在數組中獲取 firestore 集合響應?

[英]How to get firestore collection response in an Array?

當我在雲 Firestore 中查詢時,有什么方法可以獲得數組格式的響應? 我知道兩種方式,但我想知道是否有任何其他方式與該方式直接相關

const queryRef = await db.collection('xyz').where('time','==',29).get()
const array = []
queryRef.forEach(doc => {
    array.push(doc.data())
})

還有其他方式也像這種方式。

 const array2 = queryRef.docs.map(doc => doc.data());

有什么方法可以在不使用外部 javascript 方法的情況下獲得相同的響應,如果可能,我如何計算滿足查詢的響應數量,例如

const queryRef = await db.collection('xyz').where('time','==',29).get()

在我執行或將其存儲在數組中之前,我不知道在此查詢中獲得了多少文檔

您顯示的所有代碼都沒有使用“外部 javascript 方法”。 您展示的 foreach 循環和map()都是非常標准的 JavaScript,並且都同樣有效。 事實上,這是我見過的使用 Firestore 查詢結果的兩種最常見的方式。 我不清楚為什么你需要不同的東西。

關於使用await計算查詢結果的第二個問題:

const queryRef = await db.collection('xyz').where('time','==',29).get()

該代碼具有誤導性,因為該查詢的結果不是參考。 這是一個QuerySnapshot 但是,如果您想要該對象的結果數量,只需訪問生成的文檔數組:

const count = queryRef.docs.length

Firestore 不提供一種在不進行查詢的情況下計算文檔的方法。 沒有 SQL 中的聚合函數。 如果您需要不帶查詢的文檔計數,則必須在向集合中添加和刪除文檔時自己維護文檔計數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM