Firebase集合Groupby和Count唯一值的数量(Flutter)



我对Flutter和Firebase完全陌生。我需要一些关于Firestore集合groupby和count的帮助。

我在一个集合中有一个名称列表,我想实现的是按唯一值列出它们,并计算每个值的总数。

示例:

名称列表:

  • 亚当
  • 彼得
  • Paul
  • 亚当
  • 乔治
  • 亚当
  • Paul

我的集合/结果应该返回如下内容,并带有唯一的名称和分配给变量的每个值的总数。

  • 亚当[3]
  • 乔治[1]
  • Paul[2]
  • 彼得[1]

如何在Flutter with Firestore中实现这一点?

您可以通过查询获取数据来计算名称,然后使用下面类似map的代码来区分它们。

var map = Map();
_countNames() {
Firestore.instance
.collection("collectionNameHere")
.getDocuments()
.then((snapshot) {
snapshot.documents.map((element) {
if (!map.containsKey(element.data['name'])) {
map[element.data['name']] = 1;
} else {
map[element.data['name']] += 1;
}
}).toList();
});
}
print(map);

最新更新