Как Snapshot Listener работает с автономными данными? - PullRequest
3 голосов
/ 10 апреля 2020

Я использую Firestore для Android. Я знаю, что постоянство включено по умолчанию.

Вот немного фона:

Мое приложение показывает список заметок, и каждая заметка привязана к ярлыку. Поэтому при создании заметки я должен представить список меток (в Dialog, в ответ на кнопку «Выбрать метку»), который будет предоставлен мне слушателем моментальных снимков в Query. Поскольку создание заметки - это отдельная Activity, каждый раз, когда пользователь ее создает, должен быть представлен полный список меток.

Мои вопросы:

  1. Является ли прослушиватель снимков достаточно умен, чтобы получать данные из кэша через раз, кроме как в первый раз? (И это «первый раз» будет через 30 минут, когда истечет срок действия слушателя, или Firestore очистит кеш для экономии места, верно?)
  2. Как часто влияют на присоединение и отсоединение слушателей? Я присоединяю слушателя к Activity onStart() и удаляю его onStop(). Здесь пользователь может переключаться между приложениями для копирования данных из какого-либо другого источника, чтобы добавить их в заметку, заставляя слушателя отсоединяться / присоединяться. Повлияет ли это на мой счет чтения?
  3. Как get() будет вести себя в этих сценариях ios? (Я не фанат этого, так как это не в режиме реального времени)

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

1 Ответ

3 голосов
/ 10 апреля 2020

Достаточно ли умен слушатель моментальных снимков для извлечения данных из кэша через раз, кроме первого раза? (И это «первый раз» будет через 30 минут, когда истечет срок действия слушателя, или Firestore очистит кэш для экономии места, верно?)

Если вы в автономном режиме, да, Firestore получит все данные из кеша. Это происходит, когда вы слушаете обновления в режиме реального времени. С другой стороны, если обновления в режиме реального времени не являются обязательными, вы можете просто использовать вызов get() и указать источник, как объяснено в моем ответе из следующего поста:

Что касается ограничения кэша, ознакомьтесь со следующим ответом:

Какое влияние имеет частое подключение и отключение слушателя? Я присоединяю слушателя в onStart () Activity и удаляю его onStop (). Здесь пользователь может переключаться между приложениями, чтобы копировать данные из какого-либо другого источника, чтобы добавить их в заметку, заставляя слушателя отсоединяться / присоединяться. Повлияет ли это на мой счет чтения?

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

Как get () будет вести себя в этих сценариях ios? (Я не фанат этого, поскольку это не в режиме реального времени)

Когда вы используете get(), это означает, что вы получаете данные только один раз. Это корреспондент addListenerForSingleValueEvent() из базы данных Firebase Realtime.

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