所以我对swift和firebase相当新,但是我已经意识到使用firebase来同步数据已经为我创造了一个特殊的问题。我有一个非常简单的应用程序,基本上允许用户将多个图像上传到firebase存储。
现在我的代码中发生的事情是,一旦完成上传的第一个图像,视图就会转移到下一个视图控制器。我想要做的只是在所有图片上传时不仅仅是一个
我试图创建一个浮动列表,对于用户打算上传的每个图像,我只会跟踪上传的最后一张图像。但是,我必须相信还有另一种方法可以做到这一点。此外,我的解决方案似乎无法正常工作。
func observeUploadProgress(for job: Job) {
let imageName = UUID().uuidString
let storageRef = FIRStorage.storage().reference().child("\(imageName).png")
let uploadData = UIImagePNGRepresentation(job.beforeImage!)
let uploadTask = storageRef.put(uploadData!, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error)
return
}
job.beforeImageUrl = (metadata?.downloadURL()?.absoluteString)!
self.uploadingImagesToFirebase = false
if (self.arrayProgressList[self.arrayProgressList.count - 1] >= 1.0) {
self.alertController?.dismiss(animated: true, completion: nil)
self.performSegue(withIdentifier: "unwindFromCustomerDetailsSegue", sender: self)
}
})
self.arrayProgressList.append(0.0)
let curr_index = self.arrayProgressList.count - 1
uploadTask.observe(.progress) { (snapshot) in
guard let progress = snapshot.progress else { return }
self.uploadingImagesToFirebase = true
self.arrayProgressList[curr_index] = Float(progress.fractionCompleted)
self.progressView?.progress = self.arrayProgressList[self.arrayProgressList.count - 1]
}
}