gpt4 book ai didi

javascript - 如何获取数组中的 firestore 集合响应?

转载 作者:行者123 更新时间:2023-12-01 00:04:49 24 4
gpt4 key购买 nike

当我在云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 中那样的聚合函数。如果您需要在没有查询的情况下获得文档计数,则在向集合添加和删除文档时,您必须自己维护文档计数。

关于javascript - 如何获取数组中的 firestore 集合响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60463210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com