Приложение Firestore, читающее из кэша, не работает - PullRequest
0 голосов
/ 16 февраля 2019

У меня настроено приложение для Android Firestore, аналогичное примеру быстрого приложения , другими словами:

  • EntryActivity отображает документы в коллекции
  • При щелчке по документу передайте идентификатор документа в DetailsActivity
  • DetailsActivity, используя собственную ссылку FirebaseFirestore, чтобы прочитать этот документ с идентификатором
  • И EntryActivity, иDetailsActivity получить собственную ссылку FirebaseFirestore через FirebaseFirestore.getInstance() в onCreate

Однако, поскольку открываемый документ ранее читался в EntryActivity, я хочу, чтобы DetailsActivity прочиталон из локального кэша быстрее , чем если бы он был прочитан с сервера.

В DetailsActivity при запросе документа из кэша:

var time = System.currentTimeMillis()
firestore.collection(collectionPath)
    .document(docId)
    .get(Source.CACHE)
    .addOnSuccessListener { snapshot ->
        time = System.currentTimeMillis() - time
        Log.v(TAG, "read took $time ms fromCache=${snapshot.metadata.isFromCache}")
    }

Результатыв:

read took 300-500 ms fromCache=true

Чтение с сервера:

var time = System.currentTimeMillis()
firestore.collection(collectionPath)
    .document(docId)
    .get(Source.SERVER)
    .addOnSuccessListener { snapshot ->
        time = System.currentTimeMillis() - time
        Log.v(TAG, "read took $time ms fromCache=${snapshot.metadata.isFromCache}")
    }

Результаты:

read took 300-500 ms fromCache=false

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

Для эксперимента я попытался прочитать документ (после того, как он уже был прочитан) в EntryActivity, используя тот же метод get(Source.CACHE), описанный выше, и он быстрее похож напредназначен:

read took 30-80 ms fromCache=true

Почему чтение из кэша только быстрее в первом действии?

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