我想要检索我在iOS中使用Firebase保存的图像。 我试图保存图片网址并检索网址,但我无法在我的应用程序中看到图片。
这是我的代码
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)
}
我如何到达那里?
答案 0 :(得分:1)
由于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。