Angular 云Firestore获取离子3中的文档计数

Angular 云Firestore获取离子3中的文档计数,angular,firebase,ionic3,angularfire2,google-cloud-firestore,Angular,Firebase,Ionic3,Angularfire2,Google Cloud Firestore,因为云Firestore是测试版。谷歌提供的信息较少。 我只是想知道,我们如何才能获得特定集合中存在的文档总数。我们可以通过foreach循环来实现这一点,但这不是我认为的好方法。我尝试了length函数,但它不起作用 import {AngularFirestore} from 'angularfire2/firestore'; ........ constructor(private afs:AngularFirestore) { console.log(this.afs.c

因为云Firestore是测试版。谷歌提供的信息较少。 我只是想知道,我们如何才能获得特定集合中存在的文档总数。我们可以通过foreach循环来实现这一点,但这不是我认为的好方法。我尝试了
length
函数,但它不起作用

import {AngularFirestore} from 'angularfire2/firestore';

........

constructor(private afs:AngularFirestore) {

     console.log(this.afs.collection(`/cart`).length);  //undefined 

     let ref = this.afs.collection('/cart').valueChanges();
     ref.forEach(element => {
        console.log(element.length);  // total 4 (works fine)
     });
}

您可以按如下所示进行操作

使用Javascript API

db.collection(`/cart`).get().then((querySnapshot)=> {      
    console.log(querySnapshot.size); 
});
角火2:

 let count = this.afs.collection(`/cart`).snapshotChanges().map(c => {
      return c.length;
    });
试着这样做:

进口

import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
阶级

cartCollection:AngularFirestoreCollection//Firestore系列
建造商(私人afs:AngularFirestore){
this.cartCollection=this.afs.collection('cart');
此.cartCollection.snapshotChanges().map(数据=>{
console.log(data.length);
});
}

角火2

let count = this.afs
    .collection(`/cart`)
    .snapshotChanges()
    .subscribe(c => {
        return c.length;
    });

谢谢你的快速回复。现在,当我运行上述代码时,它会给我错误
this.afs.collection(…).get不是一个函数
。我正在为我的项目使用
angularfire2
。这也不起作用。看起来该函数没有进入
.map()的内部。count正在返回一个对象集。代码未达到
c.长度
。同上。它没有进入控制台.log中。
let count = this.afs
    .collection(`/cart`)
    .snapshotChanges()
    .subscribe(c => {
        return c.length;
    });