2017-04-18 76 views
0

我正在使用Firebase制作一个简单的应用程序,并且我正在上传图片并在稍后的某个时间下载图片。上传工作得很好,但是当我尝试下载发生错误时会说。找不到对象profile_pics。我创建了一个名为profile_pics的文件夹,并将该图像存储在该文件夹中。图像在那里,但下载时出错。这是屏幕截图。未找到Firebase对象

enter image description here

这里是什么是在控制台中。

错误 - :对象profile_pics不存在。

这里是下载图像的代码。

let storage = FIRStorage.storage().reference(forURL: "gs://dd-dd-dd.appspot.com/profile_pics/\(profileURL)") 
    print("Path Full \(storage.fullPath)") 
    storage.data(withMaxSize: 11 * 1024 * 1024, completion: { 
     (data, error) in 
     if let error = error{ 
      print("Error -: \(error.localizedDescription)") 
     } 
     else{ 
      let image = UIImage(data: data!) 
      cell.profileImageView.image = image 
     } 
    }) 

什么可能是可能的错误?如果你请通过这个指导我。

+0

我几乎复制和粘贴你的代码,它为我工作。仔细检查谷歌空间的网址。哦,并且确保您在Firebase控制台中添加了该应用,并且还导出了正确的GoogleService-Info.plist文件并将其添加到您的项目中。也许它指向了错误的位置。 – Jay

+0

@Jay如果info.plist文件不正确,那么我将无法将数据上传到Firebase存储和实时数据库并进行身份验证。但所有这些工作都很好。唯一的问题是这个下载图像。 –

+0

你确定profileURL是a)非null,和b)只是文件名而不是它自己的一些单独的URL? –

回答

0

我这样恢复它。

let url = URL(string: "\(ImageUrlSavedinDatabase)") 

    let task = URLSession.shared.dataTask(with: url!) { data, response, error in 
     guard let data = data, error == nil else { return } 

        DispatchQueue.main.sync() { 
        self.profilepicimageview.image = UIImage(data: data) 
        self.actIndicator.stopAnimating() 
      } 
     } 
    task.resume() 

这是否行得通?

Niall