对 URL 的存储引用
StorageReference to URL
我正在尝试按照 Firebase 的文档了解如何在应用程序中向用户显示来自 firebase 存储的图像。这是下面的文档:
// Reference to an image file in Firebase Storage
let reference = storageRef.child("images/stars.jpg")
// UIImageView in your ViewController
let imageView: UIImageView = self.imageView
// Placeholder image
let placeholderImage = UIImage(named: "placeholder.jpg")
// Load the image using SDWebImage
imageView.sd_setImage(with: reference, placeholderImage: placeholderImage)
我自己尝试这样做:
//get image url from deal
self.ref.child("deals").child("log").child(currentDealView).child("pictures").child(currentImageView).child("imageSelected").child("imageSelected").observeSingleEvent(of: .value) { (snapshot) in
let imageUrlString = snapshot.value as! String
let imageUrlUrl = URL(string: imageUrlString)
print(imageUrlString)
//prints "deals/log/dealNumber83/pictures/googleScreenshot/imageSelected"
// Reference to an image file in Firebase Storage
let reference = self.storageRef.child(imageUrlString)
// UIImageView in your ViewController
let viewPicImageView: UIImageView = self.viewPicImageView
// Placeholder image
let placeholderImage = UIImage(named: "placeholder.jpg")
// Load the image using SDWebImage
viewPicImageView.sd_setImage(with: reference, placeholderImage: placeholderImage)
但是在最后一行我在 "with: reference," 处出错说:"Cannot convert value of type 'StorageReference' to expected argument type 'URL?'" 我在网上找不到任何关于如何将 StorageReference
转换为 URL
?谢谢。
你可以使用这个:
let Ref = Storage.storage().reference(forURL: imageUrlUrl)
Ref.getData(maxSize: 1 * 1024 * 1024) { data, error in
if error != nil {
print("Error: Image could not download!")
} else {
yourImageView.image = UIImage(data: data!)
}
}
希望对您有所帮助...
或者,使用 FirebaseStorageSwift 测试版利用 Swift 结果类型。 (将 pod 'FirebaseStorageSwift'
添加到 Podfile。)
let Ref = Storage.storage().reference(forURL: imageUrlUrl)
Ref.getData(maxSize: 1 * 1024 * 1024) { result in
switch result {
case let .success(data):
yourImageView.image = UIImage(data: data)
case let .failure(error):
print("Error: Image could not download! \(error)")
}
}
我正在尝试按照 Firebase 的文档了解如何在应用程序中向用户显示来自 firebase 存储的图像。这是下面的文档:
// Reference to an image file in Firebase Storage
let reference = storageRef.child("images/stars.jpg")
// UIImageView in your ViewController
let imageView: UIImageView = self.imageView
// Placeholder image
let placeholderImage = UIImage(named: "placeholder.jpg")
// Load the image using SDWebImage
imageView.sd_setImage(with: reference, placeholderImage: placeholderImage)
我自己尝试这样做:
//get image url from deal
self.ref.child("deals").child("log").child(currentDealView).child("pictures").child(currentImageView).child("imageSelected").child("imageSelected").observeSingleEvent(of: .value) { (snapshot) in
let imageUrlString = snapshot.value as! String
let imageUrlUrl = URL(string: imageUrlString)
print(imageUrlString)
//prints "deals/log/dealNumber83/pictures/googleScreenshot/imageSelected"
// Reference to an image file in Firebase Storage
let reference = self.storageRef.child(imageUrlString)
// UIImageView in your ViewController
let viewPicImageView: UIImageView = self.viewPicImageView
// Placeholder image
let placeholderImage = UIImage(named: "placeholder.jpg")
// Load the image using SDWebImage
viewPicImageView.sd_setImage(with: reference, placeholderImage: placeholderImage)
但是在最后一行我在 "with: reference," 处出错说:"Cannot convert value of type 'StorageReference' to expected argument type 'URL?'" 我在网上找不到任何关于如何将 StorageReference
转换为 URL
?谢谢。
你可以使用这个:
let Ref = Storage.storage().reference(forURL: imageUrlUrl)
Ref.getData(maxSize: 1 * 1024 * 1024) { data, error in
if error != nil {
print("Error: Image could not download!")
} else {
yourImageView.image = UIImage(data: data!)
}
}
希望对您有所帮助...
或者,使用 FirebaseStorageSwift 测试版利用 Swift 结果类型。 (将 pod 'FirebaseStorageSwift'
添加到 Podfile。)
let Ref = Storage.storage().reference(forURL: imageUrlUrl)
Ref.getData(maxSize: 1 * 1024 * 1024) { result in
switch result {
case let .success(data):
yourImageView.image = UIImage(data: data)
case let .failure(error):
print("Error: Image could not download! \(error)")
}
}