![](/img/trans.png)
[英]How to get ID of collection in Firestore with angular 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.