繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM