使用 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 集合中的文档数量。这意味着获取计数的唯一方法是:
- 获取所有文档并在客户端计算它们。
- 将计数存储为单独的 属性 并在您 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);
})
我想获取 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 集合中的文档数量。这意味着获取计数的唯一方法是:
- 获取所有文档并在客户端计算它们。
- 将计数存储为单独的 属性 并在您 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);
})