а также

ение данных с сервера может занять несколько секунд. Есть ли способ получить кэшированные данные, используя прямое получение?

onComplete кажется, вызывается только когда данные извлекаются с сервера:

db.collection("cities").whereEqualTo("state", "CA").get()
        .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                ...
                }
            }
        });

Есть ли обратный вызов для кэшированных данных?

Ответы на вопрос(2)

Ваш ответ на вопрос