Вам необходимо сначала сохранить изображение. Тогда вы сможете получить URL-адрес, где изображение сохраняется. Вот пример.
func saveButtonPressed() {
let storageRef = Storage.storage().reference(withPath: "profile_images")
let imageData = profileImageView.image?.jpegData(compressionQuality: 0.8)
guard let data = imageData else { return }
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
// Here you can decide where to save the image. In your case it will look something like this.
// let ref = Storage.storage().reference(withPath: "profile_images").child(user.uid)
storageRef.putData(data, metadata: metadata) { (metadata, error) in
if let _ = error {
// Error Handling...
return
}
storageRef.downloadURL { (url, error) in
if let _ = error {
// Error Handling...
return
}
guard let url = url else { return }
let urlString = url.absoluteString
print(urlString)
}
}
}
Надеюсь, это поможет.
Так что если вы хотите получить URL для изображения, которое уже сохранено в хранилище. Сначала вам нужно указать, что оно находится.
//Example as above
let storageRef = Storage.storage().reference(withPath: "profile_images").child(user.uid)
storageRef.downloadURL { (url, error) in
if let _ = error {
// Error Handling...
return
}
guard let url = url else { return }
let urlString = url.absoluteString
print(urlString)
}
Если в ссылке нет изображения, вы получите ошибку. Это в основном так же, как первый ответ, который я дал, но без сохранения. Поскольку изображение уже существует, вы можете просто использовать ref.downloadURL. Надеюсь, это поможет.