Поиск в Supabase много
Подборка
- Simple search (можно подробно прочитать в документации)
- когда нужен поиск по одному полю) - API (https://www.youtube.com/watch?v=yExwJg1Kz0s&list=PLsGKm9PeeQyIHA00PFyuh7-VEZHLNl_Jo)
или подробно в Поиск в Supa по одному столбцу - Algolia (быстрый и бесплатный поиск (до 1000 позиций)
- Поиск по всей таблице (https://www.youtube.com/watch?v=gb7aKhDuZ4w)
- Поиск по примерному описанию/по смыслу. см. технику №3 (https://www.youtube.com/watch?v=-l3iRV1WlEM) )
- Поиск в Supabase через API примерно 1ч30мин
- SIMPLEST way to make Simple Search in FlutterFlow and Supabase (2025) - YouTube
- от Kosmorangers. Источник: Telegram: Contact @flutterflow_rus
Я использую простую кастомную функцию, в которой если в аргументе пусто, то она просто возвращает знак &. Если возвращать null, выйдет ошибка. А символ & не вызывает ошибок. Короче функция примерно так выглядит:
String? idCommentFiltr(int? id) {
// если в аргументе id есть число, то вернуть comid=eq.[id]&
if (id != null) {
if (id is int) {
return 'comid=eq.$id&';
}
}
return '&';
Пример строки API в Supa для поиска и фильтрации по нескольким параметрам
https://nvodtxeehqreyjuijsl.supabase.co/rest/v1/productos?&select=*&isAvailable=true&name=[name]&shopIDRef=eq.[shop]&order=myIndex.asc
Поиск в нескольких столбцах Supa. Так как стоит OR, то в любом из них.
Ищет в таблица Services, во всех трёх столбцах: serviceName, dopName, description
https://nvodtxeehqnreyjuijsl.[[Supabase]].co/rest/v1/services?or=(serviceName.[name],dopName.[name],description.[name])
[name сделать как ниже]
а лучше в photos "supabase"
Сложный поиск
Вариант 1
от https://t.me/gotorain
Источник: https://t.me/flutterflow_rus/24030/48975
I. Метод. Поиск по таблице Supabase, текст запроса должен быть в той же последовательности, что и в Supabase.
Например: нам нужно найти "Красивый зеленый дом, с бассейном". Тогда для запроса подойдет "Красив зелен басс"
- Выбираем таблицу поиска
- Колонку поиска
- Метод поиска (не чувствителен к регистру)
- Code Expression
- Создаем аргумент var1, который берем из TextField
- И вставляем код (Полностью, с одинарными кавычками:
'%${var1.split(' ').map((word) => '%$word%').join()}%'
Ну и жмем Check Errors - Confirm
Вариант 2
от https://t.me/gotorain
Источник: https://t.me/flutterflow_rus/24030/48975
II. Метод. Поиск по таблице Supabase, НЕ обязательно в той же последовательности , что и в Supabase.
Например: нам нужно найти "Красивый зеленый дом, с бассейном". Тогда для запроса подойдет "басс зелен красив"
Для этого нужно:
- два (или более фильтра) - это количество слов разделенных пробелами, В нашем случае до 3х слов с оператором AND. (Скриншот 1).
- так же используем метод Like (Case-insensitive), и Code-Exprssion для всех трех фильтров, НО код у всех отличается:
Первый:
'%${var1.split(' ')[0]}%'
Второй:
'%${var1.split(' ').length > 1 ? var1.split(' ')[1] : ''}%'
Третий:
'%${var1.split(' ').length > 2 ? var1.split(' ')[2] : ''}%'
(Не забываем - одинарные кавычки тоже нужно копировать)
Где var1 - наша переменная, которую отправляем в запрос
и с каждым новым фильтром в code expression нужно изменить два числа в формуле +1

