Как получить все документы из коллекции Firestore в классе POJO?

У меня есть определенный вопрос о Firebase Firestore. У меня есть пример модели Firestore:

Скриншот Firestore

Категории – это сбор, внутри некоторых документов. Я пытаюсь получить все документы из коллекции следующим образом:

query.addSnapshotListener { querySnapshot, firebaseFirestoreException -> if (firebaseFirestoreException != null) { if (!emitter.isDisposed) { TODO("implement new exception logic") } } else { val value = querySnapshot.toObjects(Category::class.java) } } 

В этом случае я получаю документы «Список Category . Могу ли я создать класс CategoriesEntity как этот, и получить этот класс модели в addSnapshotListener ?

 public class CategoriesEntity { private Map<String, Category> categories; public CategoriesEntity() { } public Map<String, Category> getCategories() { return categories; } public void setCategories(Map<String, Category> categories) { this.categories = categories; } } 

Нет метода удобства, такого как toObjects() который может создать карту вместо этого, но вы можете выполнить итерацию каждого документа вручную и добавить его на карту.

Документы в коллекции возвращаются в виде списка, поэтому вы можете выполнять итерацию по каждому документу, преобразовывать его в экземпляр Category и вручную добавлять его на свою карту:

 query.addSnapshotListener { querySnapshot, firebaseFirestoreException -> if (firebaseFirestoreException != null) { if (!emitter.isDisposed) { TODO("implement new exception logic") } } else { val categories = HashMap<String, Category>() for (document in querySnapshot.getDocuments()) { categories.put(document.getId(), document.toObject(Category::class.java)) } val categoriesEntity = CategoriesEntity() categoriesEntity.setCategories(categories) } }