Я использую FirestorePagingAdapter
для заполнения RecylerView
данными из Cloud Firestore.Мне нужно отфильтровать некоторые элементы на основе условий, определенных локально (на устройстве, на котором выполняется приложение, а не в Cloud Firestore).Из-за этого ограничения я не могу обновить свой запрос в Firestore для фильтрации данных.
Переходя к this и официальной документации для PagedListAdapter , похоже, Roomспособ сделать это.
Для простоты предположим, что Cloud Firestore имеет коллекцию под названием «Users», содержащую различные документы с автоматически сгенерированными именами, и каждый документ имеет поля «userID» и «timestamp».Я определил EntityClass
, Dao
интерфейс и Database
точно так же, как документация для этого случая.У Dao есть требуемые методы SQL-запросов и удаления, но я не знаю, где это реализовать.
Проблема в том, что я не смог определить DiffUtil.ItemCallbacks<EntityClass>
, поскольку в * нет конструктора FirestorePagingAdapter
, который содержит конструктор, который принимает ItemCallback
в качестве параметра.Кроме того, я не могу понять, как связать здесь ViewModel
.
Как мне связать FirestorePagingAdapter
с комнатой, чтобы я мог предотвратить добавление некоторых элементов в RecyclerView
?