如何在Firebase Firestore Android中使用数据列表

时间:2019-06-15 06:37:07

标签: android firebase google-cloud-firestore

我正在使用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);

现在我不知道如何使用哪种类型的类。

我阅读了文档,但是没有找到解决方案。

2 个答案:

答案 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);