#firebase #flutter #firebase-realtime-database #google-cloud-firestore #geolocation
#firebase #flutter #firebase-realtime-database #google-cloud-firestore #геолокация
Вопрос:
Сейчас я работаю над следующей темой:
- около 8000 хранилищ / объектов (уникальный идентификатор, имя, адрес, широта, долгота, геохеш, количество продуктов, количество продуктов.)
- в будущем появятся новые магазины, а также некоторые из магазинов будут удалены
- Я планирую добавить атрибут версии к каждому данные: например, я начинаю с version1. Если я получу обновление или новое хранилище, у него будет версия2
- для получения изменений в реальном времени это не требуется. Эти данные будут меняться только пару раз в месяц
- Приложение Flutter с функцией: найдите n магазинов в этом местоположении
- поскольку данные меняются нечасто, я планировал добавлять обновленную локальную базу данных sqlite в каждую сборку
- Я буду использовать базу данных в реальном времени или Firestore для получения обновленных данных в моем приложении, чтобы избежать публикации новой версии только потому, что база данных была изменена
- Firestore: я добавлю только новый атрибут в свой документ и буду запрашивать все данные, которые новее, чем версия моей локальной базы данных, и у меня также будет коллекция, в которой есть все удаленные элементы
- База данных в реальном времени: здесь у меня было бы что-то вроде этого
-updates version1 newData: List of unique IDs deletedData: List of unique IDs
Я много читал о геозапросах в firestore, а также нашел рабочий плагин flutter для выполнения этой фильтрации на стороне сервера, но поскольку мои данные меняются не так часто, я очень смущен наилучшим подходом.
Вопросы:
- Является ли мой подход хорошей идеей или я должен забыть о локальной базе данных sqlite и использовать только Firebase / Firestore?
- Если я буду использовать локальную базу данных и буду получать обновления только от серверной части, Какие из сервисов мне следует использовать с точки зрения ценообразования и т. Д.? (Преимущество Firestore: если я использую Firestore, я могу легко переключиться на него с помощью плагина flutter и забыть о своей локальной базе данных)
Ответ №1:
Если у вас всего пара тысяч объектов, и данные практически не меняются, я бы обычно рассматривал возможность запроса данных локально на устройстве. Вероятно, вы можете очень быстро перебрать 8000 элементов, чтобы сверить их широту / широту с местоположением пользователя.
Затем вы можете использовать что-то вроде хранилища Firebase или даже хостинга Firebase для распространения обновленных наборов данных среди пользователей. Конечно, вы могли бы использовать Firestore или Realtime Database и для этого, но если вы не используете их возможности запросов или реального времени, есть более дешевые варианты распространения статического файла.