Firestore получить вложенный объект и преобразовать в POJO - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть вложенные объекты в Firestore, где я привязал документ к UUID зарегистрированного пользователя.

Я могу получить вложенные значения, преобразовав их в Map и вызвав getData для DocumentSnapshot.Затем перебираем набор записей Map.Обычно я использовал методы Firestore для преобразования результата обратно в свой пользовательский объект (например, documentSnapshot.toObject (POJO.class) и выбрасывал их в список, но, поскольку я получаю вложенные значения в виде Map, мне нужно будет использоватьчто-то вроде Джексона или GSON? Как только этот цикл будет завершен, я хочу преобразовать его в POJO и добавить каждый в массив, в данном случае allVehices.

public ArrayList<Vehicle> getAllVehicles() {
    FirebaseFirestore.getInstance().collection("vehicles")
            //.whereEqualTo("vehicleUUID",FirebaseAuth.getInstance().getCurrentUser().getUid())
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (DocumentSnapshot documentSnapshot : task.getResult()) {
                            Map<String,Object> map = (Map<String,Object>) documentSnapshot.getData();
                            for (Map.Entry<String,Object> entry : map.entrySet()) {
                                System.out.print(entry.getKey() + "/" + entry.getValue());

                            }
                        }
                    }
                }
            });

    return allVehicles;

}

Структура Firestore

1 Ответ

0 голосов
/ 06 февраля 2019

Да, вам придется найти собственное решение для этого, поскольку Firestore SDK в настоящее время не поддерживает отображение отдельных полей в объекты Java.Он работает только со всем содержимым документа прямо сейчас.

Не стесняйтесь подать запрос функции , если вы хотите, чтобы SDK предоставил способ сделать это сопоставление для вас.

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