Cloud Firestore获取Ionic 3中的文档计数

时间:2017-11-09 06:45:18

标签: angular firebase ionic3 angularfire2 google-cloud-firestore

由于Cloud Firestore处于测试版。 Google提供的信息较少。 我只想知道如何才能获得特定集合中存在的文档总数。我们可以通过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)
     });
}

3 个答案:

答案 0 :(得分:1)

您可以按照以下所示进行操作。

使用 Javascript API

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

<强> Angularfire2:

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

答案 1 :(得分:0)

尝试这种方式:

IMPORT

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

CLASS

 cartCollection: AngularFirestoreCollection<any>; //Firestore collection

constructor(private afs:AngularFirestore) {
  this.cartCollection = this.afs.collection('cart');
  this.cartCollection.snapshotChanges().map(data => {
    console.log(data.length);
  });
}

答案 2 :(得分:0)

Angularfire2

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