Действия с базой данных Supabase
Действия с базой данных Supabase позволяют добавлять, обновлять или удалять строку в таблице Supabase.
Обратите внимание, что помимо действий вы также можете настроить запросы к серверу для Supabase. Это включает запросы с потоковой передачей в реальном времени.
Перед началом работы с этим разделом убедитесь, что вы выполнили следующие шаги:
- Все этапы настройки Supabase
- У вас создана таблица для добавления, обновления и удаления данных.
Типы действий с базой данных Supabase
Ниже приведены типы действий, которые вы можете выполнять с таблицей Supabase.
- Добавить строку: Добавляет новую строку в таблицу.
- Обновить строку: Обновляет строку указанными значениями.
- Удалить строку: Удаляет строку из таблицы.
- Запросить строки: Получает строки из таблицы на основе конкретных критериев или условий.
Добавить строку [Действие]
-
Выберите виджет (например, кнопку), для которого хотите определить действие.
-
В панели свойств (правое меню) выберите Действия и нажмите Открыть. Это откроет редактор потоков действий в новом всплывающем окне.
-
Нажмите + Добавить действие.
-
В правой части найдите и выберите действие Supabase > Добавить строку.
-
Установите Таблица в имя вашей таблицы (например, assignments).
-
В разделе Установить поля нажмите кнопку + Добавить поле.
-
Нажмите на имя поля.
- Прокрутите вниз, чтобы найти выпадающий список Источник значения, и измените его на Из переменной.
- Нажмите на UNSET и выберите Состояние виджета > Name текстового поля.
-
Аналогично добавьте поле для других элементов интерфейса.
-
При добавлении этого действия вы можете оставить поле id (если оно отмечено как Primary) и
created_at (если значение по умолчанию — now()). Supabase автоматически добавит значения для этих полей.
Обновить строку [Действие]
-
Выберите виджет (например, кнопку), для которого хотите определить действие.
-
В панели свойств (правое меню) выберите Действия и нажмите Открыть. Это откроет редактор потоков действий в новом всплывающем окне.
-
Нажмите + Добавить действие.
-
В правой части найдите и выберите действие Supabase > Обновить строку.
-
Установите Таблица в имя вашей таблицы (например, assignments).
-
Опционально: Если вы хотите получить строки после завершения обновления, включите опцию Вернуть соответствующие строки.
-
Теперь необходимо указать строку, которую вы хотите обновить. Обычно это делается путем поиска строки в таблице, соответствующей текущему ID строки. Для этого нажмите кнопку + Добавить фильтр в разделе Соответствующие строки.
- Установите Имя поля в поле, содержащее ID. Обычно это колонка id.
- Установите Отношение в Равно, поскольку вы хотите найти строку с точным ID.
- В Источник значения выберите Из переменной и укажите ID строки, для которой вы только что обновили значения в интерфейсе.
-
В разделе Установить поля нажмите кнопку + Добавить поле.
-
Нажмите на имя поля.
- Прокрутите вниз, чтобы найти выпадающий список Источник значения, и измените его на Из переменной.
- Нажмите на UNSET и выберите Состояние виджета > Name текстового поля.
-
Аналогично добавьте поле для других элементов интерфейса.
-
Если у вас есть поток вроде HomePage -> AssignmentDetailsPage -> UpdateAssignmentPage, вы можете включить опцию Заменить маршрут (см. пункт 5 здесь), когда переходите с AssignmentDetailsPage на UpdateAssignmentPage. Затем добавьте действие Вернуться назад после действия обновления. Это напрямую откроет HomePage после обновления строки.
Удалить строку [Действие]
Перейдите на страницу вашего проекта в FlutterFlow и следуйте шагам ниже, чтобы определить действие для любого виджета.
-
Выберите виджет (например, кнопку), для которого хотите определить действие.
-
В панели свойств (правое меню) выберите Действия и нажмите Открыть. Это откроет редактор потоков действий в новом всплывающем окне.
-
Нажмите + Добавить действие.
-
В правой части найдите и выберите действие Supabase -> Удалить строку.
-
Установите Таблица в имя вашей таблицы (например, assignments).
-
Опционально: Если вы хотите узнать, какие строки были удалены из таблицы, включите опцию Вернуть соответствующие строки.
-
Теперь необходимо указать строку, которую вы хотите удалить. Обычно это делается путем поиска строки в таблице, соответствующей текущему ID строки. Для этого нажмите кнопку + Добавить фильтр в разделе Соответствующие строки.
- Установите Имя поля в поле, содержащее ID. Обычно это колонка id.
- Установите Отношение в Равно, поскольку вы хотите найти строку с точным ID.
- В Источник значения выберите Из переменной и укажите ID строки, которую вы хотите удалить.
-
Вы можете добавить действие Обновить запрос к базе данных после этого действия, чтобы удалить удаленные элементы из списка.
Запросить строки [Действие]
В некоторых сценариях вы можете захотеть вручную запросить таблицу Supabase. Например, вы можете захотеть получить данные только в ответ на конкретное действие пользователя, такое как нажатие кнопки.
Кроме того, если ваше приложение получает разные данные в зависимости от условий, вам может быть удобнее вызывать запросы вручную. Например, вы можете получать разные задачи для администраторов и членов команды.
Чтобы вручную запросить таблицу Supabase, следуйте шагам ниже, чтобы определить это действие для любого виджета:
-
Выберите виджет (напри мер, кнопку), для которого хотите определить действие.
-
В панели свойств (правое меню) выберите Действия и нажмите Открыть. Это откроет редактор потоков действий в новом всплывающем окне.
-
Нажмите + Добавить действие.
-
В правой части найдите и выберите действие Supabase > Запросить строки.
-
Выберите таблицу, которую хотите запросить.
-
Вы также можете фильтровать и сортировать результаты запроса.
-
Укажите Имя выходной переменной действия. Оно будет использоваться для хранения результата запроса.
- Теперь вы можете использовать Имя выходной переменной действия, указанное на предыдущем шаге, чтобы генерировать дочерние элементы из переменной в ListView.
- Наконец, вы можете отобразить данные в виджете Text. Для этого выберите виджет Text > Панель свойств > Text > Меню Установить из переменной > [children_from_variable_name] элемент > Получить поле строки > выберите поле строки, которое вы хотите отобразить.
Фильтрация данных таблицы
Иногда вы можете захотеть отфильтровать список на основе условия. Например, показать только завершенные задания. Вы можете сделать это, добавив фильтр при запросе таблицы Supabase.
Давайте разберем, как отфильтровать таблицу Supabase, чтобы отобразить только желаемые элементы:
-
В свойствах действия действия Query Rows прокрутите вниз и нажмите кнопку + Добавить фильтр внизу.
-
Найдите Имя поля, нажмите на Unset и выберите колонку, к которой вы хотите применить фильтр.
-
Найдите выпадающий список Отношение, нажмите на Unset и выберите отношение из списка.
-
Найдите свойство Значение и установите его в соответствующее значение, затем нажмите Подтвердить.
Вы можете выбрать отношение фильтра в зависимости от ваших требований. Например:
- Равно: Чтобы показать только завершенные задания, установите Имя поля в колонку, содержащую статус завершения (например, is_done), установите Отношение в Равно и установите Значение в True.
- Больше чем: Чтобы показать т олько пользователей старше 30 лет, установите Имя поля в колонку age, установите Отношение в Больше чем и установите Значение в 30.
- Like: Для фильтрации адресов с почтовыми индексами, начинающимися с '35', установите Имя поля в колонку zip_code, установите Отношение в LIKE и установите Значение в 35%. В поле значения вы используете следующие подстановочные знаки для гибкого сопоставления шаблонов и эффективной фильтрации данных.
- Подстановочный знак процента (
%): Представляет ноль, один или несколько символов.- Пример:
'A%'соответствует любой строке, начинающейся с'A'(например,'Apple','Apex'). - Пример:
'%A%'соответствует любой строке, содержащей'A'(например,'Canada','Australia').
- Пример:
- Подстановочный знак подчеркивания (
_): Представляет один символ.- Пример:
'A_'соответствует любой двухсимвольной строке, начинающейся с'A'(например,'An','At'). - Пример:
'A__'соответствует любой трехсимвольной строке, начинающейся с'A'(например,'Ant','Art').
- Пример:
- Подстановочный знак процента (
Вы можете комбинировать несколько фильтров с помощью операторов AND или OR, чтобы создать более сложную логику фильтрации. Это позволяет уточнить запрос данных для соответствия конкретным условиям.