使用firebase,您可以获得如下集合中的文档:const collectionData = await collectionPath.get();
使用collectionData,您可以循环使用:
collectionData.forEach(doc=>{ // doc here is a document, and we can get data with doc.data()});
上面的代码使collectionData的行为类似于一个文档数组。然而,你仍然可以通过调用size之类的东西来将其视为一个对象?例如CCD_ 2将返回其中项目的大小。
我的问题是,QuerySnapshot的数据类型是什么,还是通过调用firebase引用的.get()返回的数据?
QuerySnapshot
是一个常规的JS对象,其中有一些自定义方法,其中一个是forEach
方法,它本质上是实际docs.forEach
数组方法的代理,一种快捷方式。
https://github.com/firebase/firebase-js-sdk/blob/cdada6c68f9740d13dd6674bcb658e28e68253b6/packages/firestore/src/api/snapshot.ts#L432-L452
根据文档,QuerySnapshot具有代表QueryDocumentSnapshot<T>>
数组的docs
字段,因此您可以调用QuerySnapshot.docs.length
来查看集合的大小。
对于collectionData问题,你能发布更多的示例代码吗?这是在使用哪个模块(例如@firebase/firestore
)?