Запрос к коллекции или таблице
Запрос к коллекции Firestore или таблице Supabase получает запись либо список записей, как только пользователь открывает страницу. Полученные данные подставляются в любые вложенные виджеты.
- Для Firestore: пройденная настройка Firebase и данные в коллекции.
- Для Supabase: пройденная настройка Supabase и данные в таблице.
Добавление запроса
Чтобы добавить запрос к коллекции Firestore или таблице Supabase:
- Выделите виджет или страницу, где должен выполняться запрос.
- Откройте Backend Query в панели свойств и нажмите Add Query.
- Выберите источник и то, что запрос должен вернуть:
- Firestore: тип запроса Query Collection, затем Collection и режим — List of Documents (список документов) или Single Document (один документ).
- Supabase: тип запроса Supabase Query, затем Table и режим — List of Rows (список строк) или Single Row (одна строка).
- Добавьте фильтры, если они нужны:
-
Firestore: в секции Filters нажмите + Filter, выберите поле, отношение и значение для сравнения.
-
Supabase: в секции Filters нажмите + Add Filter, выберите поле, отношение и значение. Для полнотекстового поиска поставьте Relation = Search (Full-Text) и выберите Search Type:
- Websearch (Recommended) — привычный поисковый синтаксис: фразы в кавычках,
OR, исключение слов через минус (-). - All Words — строки, в которых есть все слова запроса.
- Phrase — строки, где слова запроса стоят подряд, как фраза.
- Raw tsquery — операторы текстового поиска PostgreSQL для сложных запросов.
Поле Language можно оставить пустым — тогда возьмётся конфигурация базы по умолчанию. В Value введите искомый текст.
- Websearch (Recommended) — привычный поисковый синтаксис: фразы в кавычках,
-
- В секции Ordering нажмите + Order By (Firestore) или + Add Order (Supabase). Выберите поле и направление — Increasing или Decreasing.
- Дополнительные настройки:
- Hide Widget If No Match (Firestore) — прячет виджет с запросом, если ни один документ не подошёл.
- Ignore Empty Filter Values (Firestore) — по умолчанию выключено: с пустым значением фильтра запрос ищет документы с пустым полем. Включите, чтобы такие фильтры просто игнорировались.
- Filter on Null Values (Firestore) — по умолчанию фильтр со значением null пропускается; включите, чтобы он учитывался.
- Enable Infinite Scroll — список подгружается порциями по мере прокрутки. Размер порции задаёт Page Size. Для Supabase у таблицы должен быть первичный ключ, а запрос — отсортирован по нему.
- Listen For Changes (Firestore) — обновляет уже показанные документы, когда меняются их данные. Включается автоматически вместе с бесконечной прокруткой.
- Нажмите Confirm.
- Если запрос возвращает список и добавлен на гибкий виджет — Column, Row или ListView, — FlutterFlow предложит сгенерировать дочерние элементы из полученных документов или строк; подтвердите.
У запросов Supabase с обновлением в реальном времени есть ограничения:
- Только один фильтр. Комбинации вроде
isActive = true AND city = 'Los Angeles'не поддерживаются. - Удаления не отслеживаются. Даже если удалённая строка подходила под фильтр, запрос об этом не узнает: скажем, при фильтре
city = 'New York'удаление такой строки в результатах не отразится. - Выход строки из-под фильтра не отслеживается. Если изменение делает строку не подходящей под условие — например,
isActiveменяется сtrueнаfalse, — результат не обновится.
Подробности — в документации Supabase.
Использование данных
- Выделите виджет —
Text,Image,ToggleIconили другой. - В панели свойств нажмите Set from Variable.
- В Source выберите переменную записи — она создаётся автоматически при добавлении запроса.
- В Available Options укажите поле.
- При необходимости задайте Default Value — оно подставится, если поле пустое.
- Нажмите Save.
Остальные виджеты заполняются так же.
Данные из коллекции Firestore
Данные из таблицы Supabase
Частые вопросы
Почему не работают обновления в реальном времени для таблицы Supabase?
Сначала проверьте, что в запросе выключена опция Single Time Query. Затем убедитесь, что для таблицы в проекте Supabase включён режим реального времени — переключатель находится в правом верхнем углу просмотрщика таблицы.

Включить эту возможность можно и при создании таблицы.
