У меня есть приложение iOS
, которое использует Firebase Storage
для хранения изображений. После загрузки изображения я сохраняю storage reference
в моем Firebase Database
. Когда приложение загружается, оно выбирает различные storage references
из базы данных и использует метод FirebaseUI
для отображения соответствующих изображений, например, так:
let storageRef = Storage.storage().reference(forURL: imageUrl)
imageView.sd_setImage(with: storageRef, placeholderImage: nil)
Это прекрасно работает ... но очень медленно.
В поисках решений для ускорения Firebase Storage
Я нашел этот пост, который намекает на использование общедоступной ссылки изображения, т.е. его download url
вместо storage reference
: https://stackoverflow.com/a/44362350/5225013
Насколько я понимаю, это связано с тем, что public urls
имеет CDN перед ними, тогда как storage references
don 'т.
download url
можно получить в приложении с помощью следующего кода:
let storageRef = Storage.storage().reference(forURL: imageUrl)
storageRef.downloadURL { (downloadUrl, error) in
if let downloadUrl = downloadUrl {
// do something with downloadUrl
}
}
Однако получение этого способа довольно бесполезно для моей цели, поскольку выполнение асинхронного вызоватикает на дополнительное время до того, как изображение может быть отображено ...
Я играю над идеей написать облачную функцию для сохранения download url
каждого изображения вместе с соответствующими storage reference
в базе данных, изатем использовать это для отображения изображений в приложении. Изображения не являются личными и не содержат конфиденциального контента, поэтому я не против, если они являются публичными. Мне в основном интересно;Есть ли что-то, о чем мне следует беспокоиться, если я сделаю это? Это необычная практика по причине?