使用angularFire 2的Firebase firestore集合计数

Geo*_* C. 3 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_collection.snapshotChanges();
  }
Run Code Online (Sandbox Code Playgroud)

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

this.firebase_Service.get_total_messages().subscribe( data => {
   console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 7

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

  1. 获取所有文档并将其计入客户端.
  2. 将计数存储为单独的属性,并在添加/删除文档时更新该计数.

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

Firebase提供了使用云功能来保留计数器示例.虽然此示例是为Firebase实时数据库编写的,但也可以轻松修改它以在Cloud Firestore上运行.

Firestore还提供有关运行聚合查询运行分布式计数器的文档.两者似乎都比我链接的第一个样本稍微复杂一些.