Supabase в оффлайн

Мы создали библиотеку FlutterFlow , которая синхронизирует SQLite в приложении с Supabase, делая приложения FlutterFlow в первую очередь офлайн-приложениями ⚡

Приложения, работающие в автономном режиме, используют локальную базу данных и синхронизируются с

  • сделать пользовательский интерфейс мгновенно реагирующим,
  • потоковые обновления в режиме реального времени и
  • сделать приложения доступными офлайн. 

Что вы думаете об этом подходе по сравнению с использованием Firebase/Firestore? 🤔

Вероятно, есть место для обеих архитектур — наш подход был сосредоточен на обеспечении сквозного стека технологий с открытым исходным кодом (например, Postgres (на Supabase), PowerSync и SQLite).

Вариант 2

  1. Если нет интернета записываем в appstate сообщение, и генерируем уникальный идентификатор для этого сообщения для записи в отдельную колонку в супе

  2. Цикл, если по индексу 0 в appstate условие is set or not empty истина, то выполняем следующие действия

  3. Записываем это сообщение (0 индекс) Из appstate в супабейз (не забыв про уникальный ID сообщения).

  4. Далее внутри цикла проверяем Action Output, который был получен в результате вставки новой строки в супу, параметр уникальный ID должен быть равен уникальному ID из 0 индекса AppState

  5. Далее два действия.
    А. Если равен (значит запись в appstate была успешна), то делаем remove from list at index 0 из appstate.
    B. Если не равен (значит новая строка не вставлена), ничего не делаем. И цикл будет повторяться бесконечно, пока не произойдет успешной вставки.

Таким образом list сообщений из appstate будет уменьшаться, то тех пор, пока не окажется пустым и тогда цикл закончится

-+-+