Связывание локальных данных с документами Firestore - PullRequest
0 голосов
/ 19 марта 2019

У меня есть приложение, использующее Firestore для записи информации о физических устройствах, таких как серийный номер, версия оборудования, версия прошивки и т. Д. Каждое устройство имеет документ в коллекции devices. Эти устройства объявляют свой серийный номер с помощью Bluetooth, и приложение сканирует эти устройства в фоновом режиме. Когда он находит его, ему нужно связать BluetoothDevice и RSSI (а также некоторые другие параметры) с устройством из базы данных. Таким образом, я могу показать пользователю список локальных устройств и уровень сигнала в реальном времени.

Это где я потерян. Моей первой идеей было добавить дополнительные поля в POJO, которые возвращает Firestore, но они отделены друг от друга в памяти. Как и в случае, изменение одного не изменит другого, даже если они представляют один и тот же документ. Я могу обойти это ограничение, кэшируя и возвращая один и тот же объект для каждого документа. Но тогда становится трудно гарантировать, что пользовательский интерфейс получает всю необходимую информацию, потому что LiveData не уведомляет наблюдателей об изменениях атрибутов.

Итак, как я могу прикрепить и отобразить эти локальные данные в моделях баз данных, и при этом поддерживать реактивный интерфейс, который меня не сведет с ума? В частности, я бы хотел придерживаться «Чистой архитектуры» как можно лучше.

Использование Room для дополнения типа данных Firestore имеет смысл, но я должен был бы объединить модели данных, и это немного похоже на излишество. Данные, которые я хочу добавить, не нужно сохранять между запусками приложения. Тем не менее, я готов изменить свое мнение об этом.

...