Лучший способ структурировать галерею (Firestore) - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь найти лучший способ сохранить галерею в Cloud Firestore.

Каждый документ будет иметь свою собственную галерею.

Структура пожарного магазина:

Collection
  - Document
    - Title
    - Gallery

Приложение Flutter будет выглядеть так:

Экран 1: Список = [Кнопка просмотра документа]

Экран 2 (документ): [Кнопка просмотра галереи]

Экран 3: [Кнопка просмотра внешних изображений] [Кнопка просмотра внутренних изображений]

Экран 4: Отображение изображений в зависимости от выбора

Вот мои варианты:

  1. Сохранение URL-адресов изображений на карте в каждом документе (с помощью этого метода изображения мгновенно становятся доступны при загрузке документа. Однако меня беспокоит размер каждого документа, что увеличивает время загрузки экрана 1)
  2. Хранить URL-адреса изображений во вложенной коллекции каждого документа (приведет ли это к дополнительному запросу для получения изображений галереи?)
  3. Сохраните URL-адреса изображений в другом документе в коллекции «Galleries», которая затем содержит поле ссылки на основной документ (меня беспокоит то, что есть два запроса к Firestore, которые требуют второго времени загрузки при просмотре галереи).

Дополнительно: Является ли хорошей идеей удаление базовых URL-адресов URL-адресов хранилища Firestore для уменьшения размера документа? (т.е. удалите https://firebasestorage.googleapis.com/v0/b/test.appspot.com/ (используйте только остаток URL в поле документа) и вставьте его программно при вызове)

Какой метод будет наиболее выгодным?

1 Ответ

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

На мой взгляд, первое решение - это то, с которым вы можете пойти дальше, но только если вы уверены на 100%, что размер документа не превышает ограничения. Таким образом, существуют некоторые ограничения в отношении объема данных, которые вы можете поместить в документ. В соответствии с официальной документацией относительно использования и ограничений :

Максимальный размер документа: 1 МБ (1 048 576 байт)

Как вы можете видеть, вы ограничены суммой в 1 МБ данных в одном документе. Когда мы говорим о хранении текста, вы можете хранить довольно много, но, поскольку ваша карта, содержащая URL, становится больше, будьте осторожны с этим ограничением.

Если вы считаете, что один документ превышает ограничение, решение 2 - это то, что решит вашу проблему.

Дополнительно: Является ли хорошей идеей удаление базового URL-адреса URL-адресов хранилища Firestore для уменьшения размера документа?

Да, это как. Как объяснено выше, вы уменьшите размер документа. Потому что этот URL:

https://firebasestorage.googleapis.com/v0/b/test.appspot.com/

Всегда является константой, вы можете использовать ее в своем коде для воссоздания всей клиентской части URL.

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