[英]How do I retrieve Image with Firebase in iOS?
我想检索我已经用Firebase在iOS中保存的图像。 我试图保存图像URL并检索URL,但是在我的应用程序中看不到图像。
这是我的代码
listRef.observeEventType(.Value) { (snapshot) in
self.textcontent = snapshot.value as? String
}
//print nil
print("textcontent is \(self.textcontent)")
if let url = NSURL(string: self.textcontent!) {
if let data = NSData(contentsOfURL: url) {
image.image = UIImage(data: data)
}
我如何到达那里?
Firebase存储字符串而不是图像时,您的要求有点不清楚。 但是,如果您确实要存储图像,则可以将它们编码为存储字符串(每个节点10M限制)
看来您正在尝试从Firebase获取字符串,将其转换为来自另一个服务的NSURL,然后从另一个服务检索该数据。
您的代码根本无法始终如一地工作。 Firebase本质上是异步的,因此代码需要先等待Firebase返回其数据,然后才能使用它。
所以这是一个解决方案; 请注意,一旦块返回数据,您就可以在块内对其进行处理
listRef.observeEventType(.Value) { (snapshot) in
self.textcontent = snapshot.value as? String
print("textcontent is \(self.textcontent)")
if let url = NSURL(string: self.textcontent!) {
if let data = NSData(contentsOfURL: url) {
image.image = UIImage(data: data)
}
}
}
您可能还应该添加一些错误检查。
哦,我不知道您的用例是什么,但是此代码将观察者附加到listRef节点,因此,如果该数据发生更改,则每次发生更改时都会调用此代码。 您可能要改用observeSingleEventOfType。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.