Algolia
Algolia — поисковый сервис, который отвечает за миллисекунды и умеет ранжировать результаты по релевантности. Во FlutterFlow он подключается к коллекциям Firestore и даёт живой поиск по мере ввода.
- Интеграция работает только с Firestore, поэтому сначала нужно подключить Firebase — данные синхронизируются из Firestore в Algolia.
- Проект Firebase переведён на тариф Blaze — иначе расширение Algolia не заработает.
- Есть хотя бы одна коллекция Firestore, по которой будете искать.
Подключение
Настройка Algolia
Нужно создать приложение, завести индекс и выпустить ключ API с правильными правами.
Шаг 1. Приложение в Algolia
Войдите в Algolia или зарегистрируйтесь — бесплатного тарифа хватит для начала. При регистрации выберите регион дата-центра. Экран импорта данных можно пропустить кнопкой справа сверху.
Дальше дайте приложению имя: Settings > Applications, три точки рядом с «(unnamed application)», Rename, ввести имя, Save.
Шаг 2. Индекс
Индекс в Algolia — это примерно то же, что таблица в базе: в нём лежат данные для поиска. Откройте раздел Search > Index в меню слева и нажмите Create Index. Имя индекса должно в точности совпадать с именем коллекции Firestore, по которой будете искать.
Шаг 3. Ключ API
Откройте Settings > API Keys > All API Keys и нажмите New API Key. В поле Indices выберите созданный индекс, а в ACL выдайте права: addObject, deleteObject, listIndexes, deleteIndex, editSettings и settings. Нажмите Create и скопируйте ключ — он понадобится при настройке расширения Firebase.
Синхронизация данных из Firebase
Данные из Firestore в Algolia переносит расширение Algolia для Firebase: любое добавление, изменение или удаление документа сразу отражается в поисковом индексе.
- Откройте страницу расширения. Перейдите к Search Firestore with Algolia, нажмите Install in Firebase Console и выберите проект.
- Идентификатор экземпляра (по желанию). По нему потом обновляют или удаляют этот экземпляр расширения.
- Тарификация. Проверьте сводку по стоимости и нажмите Next.
- Ресурсы. Расширение создаст облачные функции и включит нужные API — просмотрите список и нажмите Next.
- Права. Проверьте, к каким сервисам расширение получает доступ, и нажмите Next.
- Настройка:
- Collection Path — имя коллекции Firestore, которую индексируем.
- Indexable Fields (по желанию) — пусто означает «все поля»; можно перечислить нужные.
- Force Data Sync (по желанию) — расширение будет лишний раз перечитывать документ из Firestore перед отправкой. Данные точнее, чтений больше.
- Algolia Index Name — имя индекса из шага 2.
- Algolia Application ID — виден в адресе панели Algolia:
https://www.algolia.com/apps/<applicationid>. - Algolia API Key — ключ из шага 3; после вставки нажмите Create Secret.
- Full Index Existing Documents — Yes, чтобы залить в индекс уже существующие документы.
- Cloud Functions Location — регион для облачной функции.
- Установка. Нажмите Install extension и дождитесь окончания — это занимает несколько минут.
Поля для поиска
По умолчанию Algolia ищет по всем полям индекса. Чтобы ограничить список, откройте Search > Index > Configuration и нажмите + Add a Searchable Attribute, затем введите имя поля. Повторите для остальных полей.
Нажмите Review and Save Settings и подтвердите Save Settings. Теперь поиск идёт только по указанным полям.
Настройка во FlutterFlow
Откройте Settings and Integrations > Algolia и включите интеграцию. Введите Application ID — он в адресе панели Algolia (https://www.algolia.com/apps/<applicationid>). Затем скопируйте Search API Key из Algolia Settings > API Keys и вставьте во FlutterFlow. В Indexed Collections отметьте коллекции Firestore, по которым будет идти поиск.
Как искать
Два способа:
- Действие Algolia Search — поиск запускается по событию: пользователь ввёл запрос и нажал кнопку.
- Backend Query — результаты обновляются прямо во время набора, через свойство Update Page On Text Change.
Действие Algolia Search
Выберите виджет, который запускает поиск, — например, IconButton. В Properties Panel откройте вкладку Actions, нажмите + Add Action, выберите жест (On Tap), найдите и выберите действие Algolia Search.
Дальше задайте параметры: в Firebase Collection — коллекцию для поиска, в Search Term — From Variable и значение поля ввода (Widget State > ваш TextField), в Max Results — сколько результатов вернуть (необязательно).
Частые вопросы
Работает ли Algolia с Supabase и другими базами?
Встроенная интеграция FlutterFlow умеет только Firestore. Связать Algolia с другой базой — например, с Supabase — можно, но через собственный код.