Firebase收集Groupby并计算唯一值的数量(Flutter)

时间:2019-10-27 18:06:15

标签: firebase flutter group-by count google-cloud-firestore

我对Flutter和Firebase完全陌生。我需要有关Firestore集合分组和计数的帮助。

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

示例:

名称列表:

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

我的收集/结果应返回如下所示的名称,并具有唯一的名称以及分配给变量的每个值的总数。

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

如何在带有Firestore的Flutter中实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以通过查询获取数据来计算名称,然后使用地图(如以下代码)来区分名称。

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);
相关问题