🧮 Суммирование данных в Firebase Firestore

Во FlutterFlow нет прямой возможности выполнить Aggregation Query (SUM) для Firestore штатными средствами. Мы решаем это через Data Query и Custom Function.

🛠 Пошаговый алгоритм

Шаг 1: Создание Custom Function sumList

Эта функция принимает список чисел и возвращает их сумму.

  • Аргументы: list (List ).
  • Возвращаемое значение: Double.
double sumList(List<double>? list) {
  if (list == null || list.isEmpty) {
    return 0.00;
  }
  return list.fold(0.00, (sum, num) => sum + num);
}

Шаг 2: Получение данных (Backend Query)

  1. На странице добавьте Backend Query (Collection Query) к нужной коллекции.
  2. Обязательно используйте фильтры, чтобы не загружать лишние данные (это экономит бюджет Firebase!).
  3. Назовите результат запроса (Action Output Name), например, allInvoices.

Шаг 3: Обновление Page State

  1. В событии On Page Load (после выполнения запроса) добавьте действие Update Page State.
  2. Выберите вашу переменную (например, totalAmount).
  3. В качестве значения выберите Custom Function sumList.
  4. В качестве аргумента функции передайте результат запроса: allInvoices Map List Item Выберите поле (например, amount).

📺 Видео-туториалы


Смотрите также: Индекс Firebase