Должен ли я загружать изображения в Cloud Firestore или Firebase Storage? - PullRequest
4 голосов
/ 01 июля 2019

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

Я знаю, как загрузить изображение в базу данных Firestore, но я подумал вместо использования FirebaseStorage, почему мы не используем строку base64 для загрузкиизображение, это может быть так просто?Или есть какое-то ограничение на длину строки?

~ PS: я не пытался использовать строку base64 для загрузки изображения в Firestore.

Ответы [ 3 ]

2 голосов
/ 04 июля 2019

Документация Cloud Firestore «Использование и ограничения» гласит, что «Максимальный размер документа» равен 1 MiB (1,048,576 bytes).
Это небольшой объем данных для изображений, который позволяет толькохранить изображения с низким разрешением в отдельных документах.В качестве обходного пути вы можете хранить изображения в нескольких документах, однако это излишне сложно, и Firebase Storage прекрасно решает эту проблему.

Кроме того, вы будете загружать все изображение (весь документ) при прослушивании любых изменений в документе.Если у вас есть документ с полями image (base64 string) и likes (int count), и вы пытаетесь прослушивать обновления likes в реальном времени, вы будете загружать полное изображение каждый раз на стороне клиента.

Firebase Storage , скорее всего, то, что вы ищете, поскольку вы можете хранить объекты любого размера (вплоть до вашей емкости), он предоставляет вам URL для загрузки , и вы не делаетедолжны обрабатывать любое кодирование или декодирование (хотя Cloud Firestore допускает больших двоичных объектов, т. е. байтовые данные).

1 голос
/ 04 июля 2019

С технической точки зрения, да, вы всегда можете сохранить (base64) строку и использовать ее позже для получения изображения.Однако строка base64 на 30% выше, чем байтовые данные.Таким образом, вы потеряете производительность и объем хранилища, если будете использовать base64.

Во-вторых, использование FirebaseStorage имеет еще одно преимущество.Это загрузить изображение, когда мобильное приложение находится в фоновом режиме.Нам, как разработчику, не нужно писать какой-то конкретный код для этого.

Ограничения облачного хранилища файлов и хранилищ Firebase уже были указаны @creativecreatorormaybenot.

Мой вывод: предпочитаю Firebase Storage, а не base64.

1 голос
/ 04 июля 2019

Нет преимуществ для хранения файлов (как двоичных данных) в Firestore, по сравнению с Firebase Storage.

Firestore оплачивается в основном за чтение, запись и удаление, с ежемесячным бесплатным хранилищем всего 1 ГБ !!! Это может быть серьезной ошибкой, если не сделано правильно. Прочитайте Как мы потратили 30 000 долларов США в Firebase менее чем за 72 часа .

Firebase Storage - безусловно лучший вариант для хранения файлов, практически без ограничения размера файла и с гораздо более дешевыми ценами, а затем просто сохраните URL-адреса файлов в Firestore, и все готово.

...