使用Swift 3 Firebase多文件上传问题

时间:2016-12-21 10:15:21

标签: swift firebase firebase-storage

所以我对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]
        }
    }

0 个答案:

没有答案