Как получить данные из документа Firebase, чтобы сохранить их и использовать в другом методе - PullRequest
0 голосов
/ 27 марта 2020

Я много искал по inte rnet, но не смог найти точный ответ, который мне нужен.

После реализации этого метода, чтобы получить данные из firestore из указанного c документа, где username = "dotcom"

  public void UserData(){
        db.setFirestoreSettings(settings);
        CollectionReference peopleRef = db.collection("member");
        peopleRef.whereEqualTo("Username", "dotcom")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    DocumentSnapshot document;
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful()) {
                            for (DocumentSnapshot document : task.getResult()) {
                                Log.d("TAG", document.getId() + " => " + document.getData());

                            }

                        } else {
                            Log.d("TAG", "Error getting documents: ", task.getException());
                        }
                    }

                });
    }

Мне нужно значение document.getData (), чтобы использовать его в другом методе внутри того же класса. Я протестировал локальные и глобальные переменные с помощью сеттеров и геттеров, у меня это не сработает: (

1 Ответ

0 голосов
/ 27 марта 2020

Как поясняется в этом другом сообщении сообщества - доступно здесь - есть несколько действий, которые вы можете предпринять для достижения этой цели.

Подводя итог, все они включают Вы получаете свои данные и устанавливаете их на ArrayList, которыми вы можете манипулировать и использовать их вне метода. В этом ArrayList также есть две возможности: использование асинхронного метода onComplete() - больше информации в официальной документации здесь - где вы сможете получить данные после их завершения; а другой способ - использовать toObject() для добавления объектов в массив.

Оба имеют некоторые преимущества по сравнению с другим - например, с помощью toObject() вы получите лучшее управление над методами во время их вызова, а другие onComplete() потребуют меньше реализации.

В любом случае, я бы порекомендовал вам взглянуть на сообщение сообщества post , чтобы получить больше информации и примеры кода для собственного использования.

Дайте мне знать, помогла ли вам информация!

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