[英]How to retrieve data from firebase storage
嘿,我正在嘗試檢索保存在 firebase 存儲中的用戶圖像,但我正在使用此存儲路徑(firebase 中的個人資料圖片文件夾)作為字符串(子路徑)來更新用戶圖像。 當用戶配置文件更新沒有錯誤時,這段代碼只是沒有像我預期的那樣更新用戶圖像,我在這里遺漏了什么可以讓我成功地創建用戶圖像並解決我的問題?
var spaceRef = Storage.storage().reference()
let storagePath = "gs://tunnel-vision-bc055.appspot.com/images/space.jpg"
spaceRef = Storage.storage().reference(forURL: storagePath)
let reference = spaceRef.child("profilePic")
// UIImageView in your ViewController
let imageView: UIImageView = self.ProfileImage
// Placeholder image
let placeholderImage = UIImage(named: "image/jpeg")
// Load the image using SDWebImage
imageView.sd_setImage(with: reference, placeholderImage: placeholderImage)
// Uh-oh, an error occurred!
return
}
這不會是您所有問題的答案,但希望是其中的一些問題。
首先,在Swift中,變量和常量以小寫字母開頭。 大寫字母類。 例如,您的 ProfileImage 應該是 profileImage。 為清楚起見,當我鍵入 profileImage 時,我指的是您的 ProfileImage。
現在,類型。 您發布的代碼中有一個不變的 profileImage 。 這是字符串類型。 您將鍵“ProfileImageUrl”的值設置為它。 我會將其名稱更改為 profileImageURL。
然后(根據您的評論之一)您正在調用 self.profileImage
let imageView: UIImageView = self.profileImage
由於您沒有看到任何錯誤,我假設您還有一個名為 profileImage 的 class 屬性,類型為 UIImageView。
線
// let user = User(ProfileImage: ProfileImage)
不會幫助你。 據我從您發布的代碼中了解到 - 以及您想要實現的目標 - 您也可以刪除它。 或者像我上面那樣評論它(//)。
你想要做的是設置一個 imageView 的圖像。
為此你需要做
imageView.image = image
為此,您需要一個 imageView 和一張圖片。 如果您不知道如何創建 imageView,請在此處搜索答案。
然后,您可以根據從 Firebase 獲得的 url 創建圖像,並將其設置為 imageView。有點像這樣
let profileImageURL = value?["ProfileImageUrl"] as? String ?? ""
let url = URL(string: profileImageURL)
DispatchQueue.global().async {
guard let data = Data(contentsOf: url) else {return} // if url is nil, return block is executed and code below is not
DispatchQueue.main.async {
self.imageView.image = UIImage(data: data)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.