簡體   English   中英

在 firebase 存儲中添加不同的圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM