Как читать коллекции отдельно от firestore

Я написал некоторый код для чтения коллекций и записи в logcat, но я хочу прочитать их отдельно и добавить в строку, чтобы использовать их позже. У меня есть такие атрибуты, как имя, cityLONG, cityLAT, кампанияStartDate, кампанияEndDate в коллекциях.

Logcat : 8sAtwKcm273R1io1Blre => {name=TEST_LOC, cityLONG=29.3054092, cityLAT=40.9301514, campaignStartDate=2019-04-30, campaignEndDate=2019-10-30}

public void readFirestore() {
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    db.collection("campaigns")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Log.d(TAG, document.getId() + " => " + document.getData());
                        }
                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            });
}

Как читать коллекции отдельно от firestore

Пожалуйста, добавьте структуру вашей базы данных в виде скриншота и укажите точные данные, которые вы хотите получить.

Alex Mamo 23.04.2019 10:03

Сэр, я добавил все.

user10894226 23.04.2019 10:08

Какие точные данные вы хотите получить?

Alex Mamo 23.04.2019 10:10

Я добавил скриншот, я хочу получить «имя, cityLONG, cityLAT, кампаниюStartDate, кампаниюEndDate» все это отдельно.

user10894226 23.04.2019 10:17

Вы пробовали ответ jackz314?

Alex Mamo 23.04.2019 10:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать getString() в документе, чтобы получить определенные строковые поля, или использовать get() для других типов и преобразовать их самостоятельно.

Ваш код будет выглядеть так:

FirebaseFirestore db = FirebaseFirestore.getInstance();
        db.collection("campaigns")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful() && task.getResult() != null) {
                            for (QueryDocumentSnapshot document : task.getResult()) {
                                Log.d(TAG, document.getId() + " => " + document.getData());
                                String cityLONG = document.getString("cityLONG");
                                //and so on
                            }
                        } else {
                            Log.d(TAG, "Error getting documents: ", task.getException());
                        }
                    }
                });

Рад, что смог помочь

Jack 23.04.2019 10:32

Другие вопросы по теме