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: любое добавление, изменение или удаление документа сразу отражается в поисковом индексе.

  1. Откройте страницу расширения. Перейдите к Search Firestore with Algolia, нажмите Install in Firebase Console и выберите проект.
  2. Идентификатор экземпляра (по желанию). По нему потом обновляют или удаляют этот экземпляр расширения.
  3. Тарификация. Проверьте сводку по стоимости и нажмите Next.
  4. Ресурсы. Расширение создаст облачные функции и включит нужные API — просмотрите список и нажмите Next.
  5. Права. Проверьте, к каким сервисам расширение получает доступ, и нажмите Next.
  6. Настройка:
    • 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 DocumentsYes, чтобы залить в индекс уже существующие документы.
    • Cloud Functions Location — регион для облачной функции.
  7. Установка. Нажмите 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 TermFrom Variable и значение поля ввода (Widget State > ваш TextField), в Max Results — сколько результатов вернуть (необязательно).

Частые вопросы

Работает ли Algolia с Supabase и другими базами?

Встроенная интеграция FlutterFlow умеет только Firestore. Связать Algolia с другой базой — например, с Supabase — можно, но через собственный код.

перевод официальной документации FlutterFlow

обновлено

ESC