Автономное использование.Флаттер Гамильтон App Архитектура.Запись в узел и ожидание облачной функции для обновления базы данных, а затем прослушиватель для обновления пользовательского интерфейса - PullRequest
0 голосов
/ 11 мая 2018

Следующая цитата взята из блога Google Developer.https://developers.googleblog.com/2017/08/hamilton-app-takes-stage.html

Например, когда кто-то участвует в лотерее, приложение сначала записывает данные в определенные узлы в базе данных реального времени, а правила безопасности базы данных помогают убедиться в их достоверности.Запись запускает облачную функцию, которая запускает бизнес-логику и сохраняет свой результат в новом узле в базе данных реального времени.Вновь записанные данные результатов затем автоматически передаются в приложение.

Я понимаю, что вместо того, чтобы делать запрос и ожидать запроса, они следовали следующей схеме:

  1. Запись в базу данных реального времени
  2. Запись запускает действие
  3. Действие вызывает некоторую логику и функцию
  4. Функция записывает данные обратно в базу данных
  5. Слушатель в приложении получает уведомление о данных, записанных в 4.
  6. Приложение обновляет пользовательский интерфейс или предпринимает какие-либо действия.

Приложение Hamilton следовало этому шаблону, когда кто-то вступает в соревнование забилет.Моя основная проблема с шаблоном заключается в том, что если соединение не подключено, мы не получим результаты и в то же время не получим ошибку.Изменения будут обновлены локально, и Firebase обновит при следующем подключении, что приведет к беспорядку, так как пользователь ожидает результата.

Мне было интересно, есть ли простой способ или шаблонследовать, поэтому мы получим ошибку и отобразим ее.

Первое, что приходит мне в голову, - это как-то добавить время для операции сохранения.Если сохранение не выполнено в действующей базе данных в течение x секунд, то мы отображаем ошибку.В то же время нам также потребуется время ожидания ответа.Поэтому, если мы не получаем ответ в течение x секунд, мы показываем что-то пользователю.

Надеюсь, меня это не смущает, так как я плохо разбирался в шаблоне.Я боролся с названием, поэтому, если кто-то может улучшить его, пожалуйста, будьте моим гостем.

1 Ответ

0 голосов
/ 24 ноября 2018

Даже при создании приложения, способного работать в автономном режиме, если цепочка операций использует облачную функцию, я бы сделал невозможным выполнение в автономном режиме, предлагая пользователю повторить попытку, когда он в сети.Однако это также может привести к плохим ситуациям, потому что вам нужно проверять соединение каждый раз, когда пользователь пытается выполнить операции, что может быть болезненным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...