使用 angularFire 2 的 Firebase firestore 集合计数

Firebase firestore collection count with angularFire 2

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

有专家能告诉我如何实现吗??

我的代码到目前为止还没有工作

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

结束 这是我尝试获取数据的方式,但这不是我想要的;

this.firebase_Service.get_total_messages().subscribe( data => {
   console.log(data);
});

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

  1. 获取所有文档并在客户端计算它们。
  2. 将计数存储为单独的 属性 并在您 add/remove 文档时更新它。

这两种方法在 NoSQL 数据库中都很常见,当然随着文档数量的增加,第二种方法效率更高。

Firebase 提供了 sample of using Cloud Functions to keep a counter。虽然此示例是为 Firebase 实时数据库编写的,但也可以轻松修改以在 Cloud Firestore 上运行。

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

this.firebase_Service.get_total_messages().subscribe(数据=>this.totalnumber=data.length); //现在,您可以获得消息总数

幸运的是,我已经使用代码以某种方式解决了问题, 试试这个,效果很好。

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