Структурирование данных Firestore для эффективного чтения - PullRequest
0 голосов
/ 02 июня 2019

Предположим, у меня есть приложение, которое показывает список ресторанов и 1000 ресторанов для показа.

Мое первое впечатление было бы создать collection ресторанов, и каждый отдельный ресторан был бы document внутриthis collection.

Проблема с вышеуказанным подходом заключается в том, что для каждого пользователя Cloud Firestore будет зарегистрировано 1000 reads.

Мой вопрос: есть лилучший способ хранения ресторанов, чтобы уменьшить количество чтений?

1 Ответ

1 голос
/ 02 июня 2019

Моим первым впечатлением было бы создание коллекции ресторанов, и каждый отдельный ресторан был бы документом внутри этой коллекции.

Да, это правильный способ сделать это.

Проблема, связанная с описанным выше подходом, заключается в том, что для каждого пользователя в пожарном хранилище будет зарегистрировано 1000 операций чтения

. С вас будет взиматься 1000 операций чтения, только если вы прочитали все документы одновременно.Но это не верный способ сделать это, вам нужно ограничить данные, которые вы получаете.Чтобы узнать, как этого добиться, ознакомьтесь с официальной документацией по порядку и ограничению данных в Cloud Firestore .

Еще один наиболее подходящий подход - это загрузка данных небольшими порциями.Эта практика называется пагинацией и может быть очень просто использована в Cloud Firestore с использованием методов startAt() или startAfter().

Для Android этот является рекомендуемым способомв котором вы можете разбивать запросы на страницы, комбинируя курсоры запросов с помощью метода limit().Я также рекомендую вам взглянуть на это видео для лучшего понимания.

Мой вопрос заключается в том, есть ли лучший способ хранения ресторанов дляуменьшить количество чтений?

И, чтобы ответить на ваш вопрос, проблема в , а не о том, как вы храните данные, о том, как вы их читаете.

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