我正在使用Firebase Firestore,因为我希望将集合中的所有文档都显示在RecyclerView
中。我可以使用此代码获取数据。
db.collection("resturant_profile").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()){
for(DocumentSnapshot documentSnapshot:task.getResult()){
Log.d("amit",documentSnapshot.getId()+" => "+documentSnapshot.getData());
}
}
}
});
但是我现在不通过类来如何分别获取列表的每个数据。我想我应该使用方法
documentSnapshot.toObject(someclass);
现在我不知道如何使用哪种类型的类。
我阅读了文档,但是没有找到解决方案。
答案 0 :(得分:2)
使用与文档中相同的字段名称创建模型类,例如:
public class Restaurant{
String title, desc;
public Restaurant(){}
public Restaurant(String title, String desc) {
this.title = title;
this.desc = desc;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
然后在获取时执行:
Restaurant res = document.toObject(Restaurant.class)
答案 1 :(得分:0)
您可以通过键获取每个单个值,例如:
String categoryId = snapshot.child("categoryId").getValue().toString();
然后将其存储在模型对象中,例如:
resModel.setCategoryId(categoryId);