Сначала импортируйте FirebaseFirestore.
import FirebaseFirestore
Затем вы можете получить доступ к FireStore, чтобы сначала (1) загрузить изображение в хранилище, а затем (2) получить URL для доступа к изображению.
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
let storage = Storage.storage().reference()
storage.child("images").putData(imageV.jpegData(compressionQuality: 0.4), metadata: metadata) { meta, error in
if let error = error {
print(error)
return
}
storage.child(folder).downloadURL { url, error in
if let error = error {
// Handle any errors
print(error)
}
}
}
Мне бы хотелось иметь расширение UIImage для этого:
extension UIImage {
func upload(with folder: String, completion: @escaping (URL?) -> Void) {
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
//let fileName = [UUID().uuidString, String(Date().timeIntervalSince1970)].joined()
let data = self.jpegData(compressionQuality: 0.4)
let storage = Storage.storage().reference()
storage.child(folder).putData(data, metadata: metadata) { meta, error in
if let error = error {
print(error)
completion(nil)
return
}
storage.child(folder).downloadURL { url, error in
if let error = error {
// Handle any errors
print(error)
completion(nil)
}
else {
completion(url)
}
}
}
}
}
Затем назвать его как
imageV.upload(with: "images", completion: { (url: URL?) in
print(url)
}