Коллекция Firebase Groupby и подсчет количества уникальных значений (Flutter) - PullRequest
0 голосов
/ 27 октября 2019

Я совершенно новичок в Flutter и Firebase. Мне нужна помощь с групповым сбором и подсчетом в коллекции Firestore.

У меня есть список имен в коллекции, и я хотел бы добиться их перечисления по уникальным значениям и подсчета суммы для каждого значения.

Пример:

Список имен:

  • Адам
  • Петр
  • Павел
  • Адам
  • Джордж
  • Адам
  • Пол

Моя коллекция / результат должны возвращать что-то вроде ниже с уникальным именем и общим количеством для каждого значения, присвоенногопеременная.

  • Адам [3]
  • Джордж [1]
  • Павел [2]
  • Петр [1]

Как мне добиться этого в Flutter с Firestore?

1 Ответ

2 голосов
/ 27 октября 2019

Вы можете считать имена, выбирая данные с помощью запроса, а затем различать их, используя карту, как показано ниже.

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);
...