Возможно ли, что вы храните полный URL-адрес https в базе данных и пытаетесь создать ссылку, добавляя полный URL-адрес https в качестве дочернего элемента к ссылке на хранилище?
Я думаю, вам следует попробовать либо сохраните только путь и имя в своей базе данных, либо измените код загрузки, чтобы использовать URL-адрес https.
// Create a reference from an HTTPS URL
// Note that in the URL, characters are URL escaped!
let httpsReference = storage.reference(forURL: "https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg")
httpsReference.getData(maxSize: ...
Также вы запускаете метод getData внутри DispatchQueue.main.async
. getData имеет обработчик завершения и может занять некоторое время, когда вы запустите его внутри DispatchQueue.main.async
, он заблокирует ваш код до тех пор, пока загрузка не будет завершена. Поместите только код, обновляющий пользовательский интерфейс, внутри DispatchQueue.main.async
. В вашем случае, как только вы сделаете что-то с помощью workoutPicsArray или UIImage, чтобы обновить свое представление.
Посмотрите здесь, чтобы узнать, сможете ли вы выяснить, как вы на самом деле пытаетесь получить данные. Было бы полезно поставить print () после каждой строки, чтобы увидеть, что вы создаете и в какой момент используете.
Загрузите файлы на iOS