Cloud Farestore, addOnCompleteListener, мой метод не возвращает прочитанные данные

Всем доброго времени суток! Ребят, у меня есть класс для работы с БД. Я вызываю мой метод ReadDocument для прочтения документа и возврата его в виде Map<String, Object>. Мне метод ничего не возвращает. Причем отладчиком вижу, что документ вычитан из БД, 18 параметров, значения правильные, но дальше код выполняется и на уровне return уже карта пустая. Подскажите плз идеи. Пробовал читать только строку. Пробовал делать static, игрался с модификаторами доступа. Куда рыть? Метод вызываю из фрагмента в onActivityCreated().

    private Map<String, Object> mapDocument; //коллекция ключ-значение, будем возвращать ее

    mapDocument = new HashMap<String, Object>();

...

    public Map<String, Object> ReadDocument (final String nameCollection, final String nameDocument) {

        documentReference = firebaseFirestore.collection(nameCollection).document(nameDocument); // формируем путь к документу
        documentReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() { // вешаем слушателя на задачу чтения документа из БД
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) { // как задача чтения выполнилась
                if (task.isSuccessful()) { // если выполнилась успешно
                    DocumentSnapshot document = task.getResult(); // получаем документ
                    if (document.exists()) { // если документ такой есть, не null

                      
                        mapDocument = document.getData(); // получаем данные из документа БД


                    } else { // если документа не существует

                        Log("DataBase", "ReadDocument", "Запрошенного документа (" + nameCollection + "/" + nameDocument + ") нет в БД");
                    }

                } else { // если ошибка чтения БД

                    Log ("DataBase", "ReadDocument", "Ошибка чтения БД: " + task.getException());
                }
            }
        });

        return mapDocument;

    }


Ответы (0 шт):