使用angularFire 2的Firebase firestore收集计数

使用angularFire 2的Firebase firestore收集计数,firebase,angularfire2,google-cloud-firestore,Firebase,Angularfire2,Google Cloud Firestore,我想获取firestore中存在的文档总数。 我不想获取数据,只有我拥有的内部产品集合的总数200.000项可以使用Angular 4-5,而不是Angular.js 有专家能告诉我如何做到这一点吗 到目前为止,我的代码不起作用 get_total_messages() { this.messages_collection = this.afs.collection<MessageEntity>('messages'); return this.messages_

我想获取firestore中存在的文档总数。 我不想获取数据,只有我拥有的内部产品集合的总数200.000项可以使用Angular 4-5,而不是Angular.js

有专家能告诉我如何做到这一点吗

到目前为止,我的代码不起作用

  get_total_messages() {
    this.messages_collection = this.afs.collection<MessageEntity>('messages');
    return this.messages_collection.snapshotChanges();
  }

没有API可以获取Firestore集合中文档数的计数。这意味着获取计数的唯一方法是:

  • 获取所有文档并在客户端清点它们
  • 将计数存储为单独的属性,并在添加/删除文档时更新该属性
  • 这两种方法在NoSQL数据库中都很常见,当然,随着文档数量的增加,第二种方法的效率会提高很多

    Firebase提供了一个。虽然此示例是为Firebase实时数据库编写的,但也可以轻松修改以在Cloud Firestore上工作


    Firestore还提供有关和的文档。两者似乎都比我链接的第一个示例稍微复杂一些。

    this.firebase\u Service.get\u total\u messages().subscribe(data=>this.totalnumber=data.length);
    //现在,您可以获得消息的总数

    幸运的是,我用代码解决了这个问题, 试试这个,效果很好

    this.db.collection('User').valueChanges()
    .subscribe( result => {
    console.log(result.length);
    })
    

    上面的@Frank说,如果我用你的方式,我需要下载20万个数据,200兆的数据,你需要3周的时间来下载,如果你想计算所有RAm将爆炸的数据,就没有办法计算收集数据的数量。谢谢,但这不是我想要的。欢迎来到stackoverflow。甘扎
    this.db.collection('User').valueChanges()
    .subscribe( result => {
    console.log(result.length);
    })