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
谢谢弗兰克! self.storage.referenceForURL(url).dataWithMaxSize是我需要的!我已经解决了我的问题。 –