繁体   English   中英

每次用户在 firebase 存储中拍摄新照片时创建一个新图像

[英]Create a new image every time user takes a new photo in firebase storage

在我的应用程序中,用户按下按钮拍摄照片,然后将其上传到 firebase 存储空间,但每次我拍一张新照片时,旧照片都会消失,并用与旧照片相同的 url 字符串取而代之。 每次同一用户拍摄并上传照片时,如何上传新图像?

这是代码

let storage = Storage.storage().reference()
    guard  let imageData = ecoImage.jpegData(compressionQuality: 0.75) else {
        return
    }
    
    
        
    let metaData = StorageMetadata()
    metaData.contentType = "image/jpg"
    
    
    
        
        storage.child("pins/\("Eco1")").putData(imageData, metadata: metaData) { (meta, error) in
            if let err = error {
                print(err.localizedDescription)
            } else {
                storage.child("pins/\("Eco1")").downloadURL { (url, err) in
                    if let e = err {
                        print(e.localizedDescription)
                    } else {
                        let urlString = url?.absoluteString
                        doc.setData(["uid": uid, "pinLocation": ecoPin, "time": timeData, "url": urlString!]) { (error) in
                            if error != nil {
                                print(error?.localizedDescription)
                                return
                            } else {
                                print("Pin saved")
                            }
                        }
                    }
                }
            }
             print("Image sent")
        }

每次放置新照片时都需要生成随机文件名。 在您提供的代码中,在元数据之后,使用 UUID 声明变量。

let fname = UUID.init().uuidString.replacingOccurences(of: "-", with: "")

storage.child("pins/\(fname))...so on

这将在您每次上传时生成随机文件名,并且应该不会替换您以前的照片。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM