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