слушатель снимка isFromCache () возвращает false - PullRequest
0 голосов
/ 20 февраля 2020

Я регистрирую слушателя снимка на ссылку моего документа. Впервые я получаю метаданные isfromCache true, а в остальное время получаю false. Это должно быть наоборот, так как ни один документ не меняется. Я проверил это значение только для того, чтобы убедиться, что мои данные после первого чтения считываются из кеша.

DocumentReference basicRef = usersRef.collection(DETAILS).document(BASIC_DETAILS);
ListenerRegistration basicListener = basicRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
            @Override
            public void onEvent(@Nullable DocumentSnapshot snapshot,
                                @Nullable FirebaseFirestoreException e) {
                if (e != null) {
                    return;
                }

                if (snapshot != null && snapshot.exists()) {
                    Log.d("debug", "Current data basic: " + snapshot.getMetadata().isFromCache());
                    BasicDetails basicDetails = snapshot.toObject(BasicDetails.class);
                    loadData(basicDetails);
                } else {
                    Log.d("debug", "Current data: null");
                }
            }
        });

1 Ответ

1 голос
/ 20 февраля 2020

Свойство isFromCache задокументировано как:

true, если моментальный снимок был создан из кэшированных данных, а не гарантированные свежие данные сервера .

То есть значение false не обязательно означает, что документ был прочитан с сервера, поскольку это означает, что документ гарантированно обновлен на сервере.

Чтобы узнать, какие документы изменились, вы можете перебрать коллекцию documentChanged, как показано в приведенном выше коде.

Также см .:

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