Google запустил новый движок запросов для Firestore — теперь трансформация этих происходит на стороне сервера, а не в коде приложения. Pipeline API доступен только в Firestore Enterprise и кардинально меняет подход к работе с большими объёмами данных.
До этого разработчики получали документы из Firestore «как есть» и обрабатывали их клиентским кодом. Новый подход позволяет выполнять сложные операции — группировку, агрегацию, фильтрацию — прямо в базе. Результат: меньше трафика, выше производительность, проще код.
Что изменилось под капотом
Новая архитектура строится на трёх компонентах: стадии (stages), выражения (expressions) и функции. Каждая стадия получает поток документов, трансформирует его и передаёт следующей стадии.
Классический запрос Firestore превращается в pipeline из нескольких стадий:
collection() → where() → sort() → limit()
Вместо where("population", ">", 100000) теперь пишут where(field("population").greaterThan(constant(100000))). Выглядит сложнее, но даёт больше контроля над запросом.
Ограничения миграции
Pipeline API работает только в Firestore Enterprise — обновить существующую Standard-базу нельзя. Придётся создавать новую базу с нуля и переносить данные. Google пока не объяснил, почему не реализовал обратную совместимость.
Поддержка SDK тоже неполная. Работает в Android, iOS, Web и Admin SDK. Flutter, Unity и C++ получат обновления позже — сроков Google не называет.
Практическая польза
Основная выгода — снижение нагрузки на клиентские приложения. Вместо загрузки тысяч документов для подсчёта среднего значения, получаете готовый результат одним запросом. Для мобильных приложений это критично — экономия трафика и батареи.
Pipeline-запросы особенно эффективны для аналитики и отчётности, где нужны агрегированные данные. Классический use case — дашборды с метриками в реальном времени.
Переход на новый движок оправдан для проектов с высокой нагрузкой на базу данных, но требует серьёзной переработки кода запросов.

