Как работать со списком данных в Firebase FireStore Android - PullRequest
0 голосов
/ 15 июня 2019

Я использую 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 ]

2 голосов
/ 15 июня 2019

Создайте класс модели, используя те же имена полей, которые вы хотите использовать внутри документа, например:

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)
0 голосов
/ 15 июня 2019

вы можете получить каждое значение по его ключу, например:

String categoryId = snapshot.child("categoryId").getValue().toString();

затем сохраните его в объекте модели как:

resModel.setCategoryId(categoryId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...