【发布时间】:2021-07-17 07:08:21
【问题描述】:
我想知道获取用户在我的应用上上传的图片的最佳方式是什么。目前,图像都保存在存储中。我认为这不是正确的方法,因为它与 userId 无关?也许,我需要将用户媒体保存在实时数据库中以获取他们的图像?如果有人可以帮助我,那将不胜感激。 谢谢。
guard let image = imageView.image, let data = image.jpegData(compressionQuality: 1.0)
else {
print("something went wrong")
return
}
let imageName = UUID().uuidString
let imageReference = Storage.storage().reference().child(MyKeys.imagesFolder).child(imageName)
imageReference.putData(data, metadata: nil) { (metadata, err) in
if let err = err {
print ("Error")
return
}
imageReference.downloadURL(completion: { (url, err) in
if let err = err {
print ("Error")
return
}
guard let url = url else {
print ("Error")
return
}
let dataReference = Firestore.firestore().collection(MyKeys.imagesCollection).document()
let documentUid = dataReference.documentID
let urlString = url.absoluteString
let data = [
MyKeys.uid:documentUid,
MyKeys.imageUrl: urlString,
MyKeys.imageTitle: self.imageTitle.text!,
] as [String : Any]
dataReference.setData(data) { (err) in
if let err = err {
print ("Error")
return
}
}
})
}
}
【问题讨论】:
-
可能不想将图像存储在实时数据库中。您可能做想要做的是将图像存储在 Firebase 存储中,并确保它们在图像引用路径中具有用户 ID (
Auth.auth().currentUser?.uid)(例如:\(uid)/\(filename))跨度> -
@jnpdx 谢谢!我现在已将图像保存为 Userid.Imagetitle - 它确实使它更容易。再次感谢:)
标签: swift firebase firebase-realtime-database firebase-storage