[英]ImageView to Firebase Storage in Swift
我正在嘗試將圖像從ImageView上傳到Firebase存儲,但無法正常工作。
我在下面列出了我的代碼:我的圖像視圖稱為ProfileImage
let storageRef = Storage.storage().reference().child("myImage.png")
if let uploadData = self.ProfileImage.image!.pngData() {
storageRef.putFile(from: uploadData, metadata: nil) { (metadata, error) in
if error != nil {
print("error")
completion(nil)
} else {
// your uploaded photo url.
}
}
}
出現錯誤“無法將類型“數據”的值轉換為預期的參數類型“ URL”
您正在嘗試上傳數據,而不是文件。 更換
putFile
同
putData
它應該工作正常
試試這個代碼:-
let storageRef = Storage.storage().reference().child("myImage.png")
if let uploadData = UIImagePNGRepresentation(self.profileImage.image!) {
storageRef.put(uploadData, metadata: nil) { (metadata, error) in
if error != nil {
print("\(error.localizeDescription)")
} else {
// your uploaded photo url.
}
}
let refDatabase = Database.database().reference()
var refstorage = Storage.storage().reference()
let data = image.jpegData(compressionQuality: 1.0) //
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
let postkey = refDatabase.child("Post").childByAutoId().key
print(postkey)
let imagename = "PostImage/\(postkey).png"
refstorage = refstorage.child(imagename)
let timestamp = Date().timeIntervalSince1970 // you can use this to track time when it was uploaded.
self.refstorage?.putData(data!, metadata: metadata, completion: { (meta, error) in
if error == nil{
if let imageData = meta?.downloadURL()?.absoluteString{
// DO SOMETHING
} else {
print("Couldn't get the URL for image")
}
}
})
我知道已經回答了這個問題,但是有一種更簡單的方法可以解決此問題。 除了導入Firebase和Firebase存儲,您還必須將FirebaseUI添加到您的Podfile中並進行導入。
完成此操作后,您可以更輕松地將圖像添加到應用程序。
let storage = Storage.storage()
let storageRef = storage.reference()
let placeholderImage = UIImage(named: "placeholder.jpeg")
let reference = storageRef.child("myImage.png")
ProfileImage.sd_setImage(with: reference, placeholderImage: placholderImage)
(占位符圖像只是您在XCode中放置在資產文件夾中的透明圖像,您可以在應用程序中多次重復使用該圖像,以便在需要時在應用程序上獲取Firebase圖像。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.