Моим первым впечатлением было бы создание коллекции ресторанов, и каждый отдельный ресторан был бы документом внутри этой коллекции.
Да, это правильный способ сделать это.
Проблема, связанная с описанным выше подходом, заключается в том, что для каждого пользователя в пожарном хранилище будет зарегистрировано 1000 операций чтения
. С вас будет взиматься 1000 операций чтения, только если вы прочитали все документы одновременно.Но это не верный способ сделать это, вам нужно ограничить данные, которые вы получаете.Чтобы узнать, как этого добиться, ознакомьтесь с официальной документацией по порядку и ограничению данных в Cloud Firestore .
Еще один наиболее подходящий подход - это загрузка данных небольшими порциями.Эта практика называется пагинацией и может быть очень просто использована в Cloud Firestore с использованием методов startAt()
или startAfter()
.
Для Android этот является рекомендуемым способомв котором вы можете разбивать запросы на страницы, комбинируя курсоры запросов с помощью метода limit()
.Я также рекомендую вам взглянуть на это видео для лучшего понимания.
Мой вопрос заключается в том, есть ли лучший способ хранения ресторанов дляуменьшить количество чтений?
И, чтобы ответить на ваш вопрос, проблема в , а не о том, как вы храните данные, о том, как вы их читаете.