Firebase从URL中检索图像并保存到Firebase数据库

问题描述:

我已将图像保存到Firebase存储并将imageURL保存到Firebase数据库,但如何通过保存在Firebase数据库中的URL返回图像?这是我如何保存Firebase从URL中检索图像并保存到Firebase数据库

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 
    userPhoto.image = image 
    dismissViewControllerAnimated(true, completion: nil) 
    var data = NSData() 
    data = UIImageJPEGRepresentation(userPhoto.image!, 0.8)! 
    // set upload path 
    let filePath = "\(FIRAuth.auth()!.currentUser!.uid)/\("userPhoto")" 
    let metaData = FIRStorageMetadata() 
    metaData.contentType = "image/jpg" 
    self.storageRef.child(filePath).putData(data, metadata: metaData){(metaData,error) in 
     if let error = error { 
      print(error.localizedDescription) 
      return 
     } else { 
      // store downloadURL 
      let downloadURL = metaData!.downloadURL()!.absoluteString 
      // store downloadURL at database 
      self.databaseRef.child("users").child(FIRAuth.auth()!.currentUser!.uid).updateChildValues(["userPhoto": downloadURL]) 
     } 
    } 
} 

下面是做这件事的一种方式,通过下载数据,然后为它创造一个UIImage

self.storage.referenceForURL(url).dataWithMaxSize(25 * 1024 * 1024, completion: { (data, error) -> Void in 
    let image = UIImage(data: data!) 
    chatMessage.image = image! 
    self.messages.append(chatMessage) 
    self.tableView.reloadData() 
    self.scrollToBottom() 
}) 

此代码来自Zero To App talk at Google I/O。完整的代码可在this gist

+0

谢谢弗兰克! self.storage.referenceForURL(url).dataWithMaxSize是我需要的!我已经解决了我的问题。 –