Firestore считает "Re-Reads" как чтение документа? - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь использовать Geofirestore для запроса результатов в заданном радиусе от центра.Насколько я знаю, GeoFire не может ограничивать количество запрашиваемых результатов.Мое решение этой проблемы состоит в том, чтобы постепенно увеличивать мой радиус, пока я не получу X результатов.Кажется, делая это, я буду повторно запрашивать результаты несколько раз, что может быть дорогостоящим.Если я запрашиваю 10 результатов, но хочу 20. Будет ли Firestore считать это 30+ чтениями?

1 Ответ

0 голосов
/ 15 июня 2019

Все реализации геоквери, которые я знаю поверх Firestore, используют геохэш для своей реализации, что означает, что они объединяют широту и долготу в одно значение, которое затем можно использовать для фильтрации всех документов в определенном географическом диапазоне.Хотя технически возможно ограничить количество документов, возвращаемых путем добавления limit(...) к запросу, результаты не будут упорядочены по их расстоянию до центра запроса.Поэтому вы, скорее всего, просто получите результаты в одной области диапазона запросов, а не в ближайших документах.

Служба Firestore взимает плату за все документы, считанные с сервера.Поскольку он имеет локальный кэш, это могут быть не все документы для вашего последующего запроса, так как документы из предыдущего запроса уже могут быть в локальном кеше.приводит к значительному перечитыванию документов.В моих экспериментах это может привести к чтению документов в 3-10 раз больше, чем в запрашиваемом диапазоне.Я бы настоятельно рекомендовал читать / следить за геохэшами и геокурсами в Firestore, например, просматривая этот доклад, который я дал недавно на эту тему: https://www.youtube.com/watch?v=mx1mMdHBi5Q.

...