如何在iOS中使用Firebase检索图像?

时间:2016-04-02 05:21:22

标签: ios swift firebase

我想要检索我在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)
        }

我如何到达那里?

1 个答案:

答案 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。