我有一些关于Firebase 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;
}
}
答案 0 :(得分:1)
没有像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)
}
}