Загрузка хранилища стоит слишком дорого для приложения Firestore в Swift 4 - PullRequest
0 голосов
/ 09 апреля 2019

То, как работает мое приложение, похоже на Instagram. Пользователь может загрузить фотографию, и всякий раз, когда кто-то загружает приложение, он загружает каждое изображение, которое было загружено из базы данных.

Я понимаю, что мне нужно купить место или изменить свой план, но я не так много сделал и трачу 1,7 ГБ от пользователя в течение часа. Каждое фото стоит 17 МБ для загрузки и скачивания.

Я не уверен, что я могу сделать, чтобы уменьшить мою загрузку здесь.

То, как я загружаю из firestore, похоже на f:

// Create a reference to the file you want to download
let islandRef = storageRef.child("images/island.jpg")

// Download in memory with a maximum allowed size of 1MB (1 * 1024 * 1024 bytes)
islandRef.getData(maxSize: 1 * 10240 * 10240) { data, error in
  if let error = error {
// Uh-oh, an error occurred!
  } else {
// Data for "images/island.jpg" is returned
let image = UIImage(data: data!)
  }
}

И каждый раз, когда он загружает фотографию в контроллер viewview. Это означает, что это как 17 МБ для каждой фотографии, что много. Какие-либо предложения? Спасибо

1 Ответ

0 голосов
/ 09 апреля 2019

Так что именно здесь вы хотите принять решение об уровне качества фотографий, которые вы загружаете в firebase.Я могу заверить вас, что Instagram и любая другая платформа социальных сетей хранят только те версии ваших изображений, которые сжаты и оптимизированы по размеру.

Вы можете легко сжать ваше изображение, выполнив что-то вроде этого

let data = imageToUpload.jpegData(compressionQuality: 0.3)

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

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