[英]add different images in firebase Storage
我想在我的 firebase 存儲中添加不同的圖像,但問題是,我的代碼只在存儲文件中添加一個,是否可以添加多個?
let userID = Auth.auth().currentUser!.uid
let db = Firestore.firestore()
guard let imageData = self.countryImage.image?.jpegData(compressionQuality: 0.4) else {
return
}
let storageRef = Storage.storage().reference(forURL: "gs://covidregulationsapp.appspot.com/")
let storageProfileRef = storageRef.child("savedImage").child(userID)
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
storageProfileRef.putData(imageData,metadata: metadata)
{ (storageMetadata, error) in
if error != nil {
print("error")
}
storageProfileRef.downloadURL(completion: {(url,error) in
let db = Firestore.firestore()
db.collection("users/\(userID)/saved")
.getDocuments() { (querySnapshot, err) in
if let err = err {
print("Couldnt update : \(err)")
} else {
db.collection("users/\(userID)/saved").addDocument(data: [
"country":self.countryTitle.text!,
"code":self.info,
"city":self.airport.text!,
"countryImage": url?.absoluteString
])
}
}
})
}
正如您在上圖中看到的,我的savedImage
Storage 中只有一張圖像,它會更改 URL 如果我嘗試添加不同的圖像,我的最終結果是在savedImage
Storage 中添加多張圖像
您將每張圖片上傳到此參考:
let storageProfileRef = storageRef.child("savedImage").child(userID)
因此,當您上傳第二張圖片時,您最終會覆蓋同一用戶的第一張圖片。
如果要為某個用戶上傳多張圖片,常用的做法是使用用戶ID作為“目錄”名,然后在該目錄下生成唯一的圖片名。
像這樣:
let uuid = UUID().uuidString
let storageProfileRef = storageRef.child("savedImage").child(userID).child(uuid)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.