我在向Swift中的Firebase存储上传图片数组时遇到问题。 我有这样的功能:Firebase连续上传在中途停止,只上传最后一张图片
func uploadImages(ref: FIRStorageReference, data: Data, completionHandler: @escaping imagesHandler) {
let task = ref.put(data)
let observer = task.observe(.progress) { (snapshot) in
print(snapshot.progress!)
}
task.observe(.success) { (snapshot) in
if let url = snapshot.metadata {
if let link = url.downloadURL()?.absoluteString {
completionHandler(link)
}else {
completionHandler(nil)
}
}else {
completionHandler(nil)
}
}
}
,我在这里使用:
var downloadURLImages = [String]()
for each in itemImage {
self.uploadImages(ref: self.inventoryStorageRef, data: each, completionHandler: { (links) in
if let url = links {
downloadURLImages.append(url)
}
})
}
的问题是,我得到的下载网址,但只上载数组的最后一个影像。在第一个函数中,我让观察者看到发生了什么,下面是结果。
随着2个图像被上传:正在上传
<NSProgress: 0x60000052b2c0> : Parent: 0x0/Fraction completed: 0.0000/Completed: 0 of 41605
<NSProgress: 0x60000052a5a0> : Parent: 0x0/Fraction completed: 0.0026/Completed: 108 of 41713
<NSProgress: 0x608000135f40> : Parent: 0x0/Fraction completed: 0.1990/Completed: 8300 of 41713
<NSProgress: 0x608000135f40> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
<NSProgress: 0x60000052a640> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
具有4的图像:
<NSProgress: 0x600000520280> : Parent: 0x0/Fraction completed: 0.0000/Completed: 0 of 41605
<NSProgress: 0x600000527580> : Parent: 0x0/Fraction completed: 0.0000/Completed: 0 of 29438
<NSProgress: 0x60000052b5e0> : Parent: 0x0/Fraction completed: 0.0000/Completed: 0 of 29438
<NSProgress: 0x60000052a5a0> : Parent: 0x0/Fraction completed: 0.0000/Completed: 0 of 41605
<NSProgress: 0x600000527800> : Parent: 0x0/Fraction completed: 0.0000/Completed: 0 of 41605
<NSProgress: 0x60000052b7c0> : Parent: 0x0/Fraction completed: 0.0026/Completed: 108 of 41713
<NSProgress: 0x60000052aaa0> : Parent: 0x0/Fraction completed: 0.0037/Completed: 108 of 29546
<NSProgress: 0x60000052b7c0> : Parent: 0x0/Fraction completed: 0.0037/Completed: 108 of 29546
<NSProgress: 0x60000052ab40> : Parent: 0x0/Fraction completed: 0.0026/Completed: 108 of 41713
<NSProgress: 0x60000052ab40> : Parent: 0x0/Fraction completed: 0.0026/Completed: 108 of 41713
<NSProgress: 0x60000052c1c0> : Parent: 0x0/Fraction completed: 0.1990/Completed: 8300 of 41713
<NSProgress: 0x60000052c1c0> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
<NSProgress: 0x60000052c1c0> : Parent: 0x0/Fraction completed: 0.1990/Completed: 8300 of 41713
<NSProgress: 0x6080001381a0> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
<NSProgress: 0x60000052c6c0> : Parent: 0x0/Fraction completed: 0.2809/Completed: 8300 of 29546
<NSProgress: 0x60000052c6c0> : Parent: 0x0/Fraction completed: 0.1990/Completed: 8300 of 41713
<NSProgress: 0x60000052c760> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
<NSProgress: 0x608000139000> : Parent: 0x0/Fraction completed: 0.2809/Completed: 8300 of 29546
<NSProgress: 0x608000136ee0> : Parent: 0x0/Fraction completed: 0.2809/Completed: 8300 of 29546
<NSProgress: 0x60000052b180> : Parent: 0x0/Fraction completed: 0.2809/Completed: 8300 of 29546
<NSProgress: 0x60000052c120> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
<NSProgress: 0x608000139280> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
<NSProgress: 0x60000052bb80> : Parent: 0x0/Fraction completed: 1.0000/Completed: 41713 of 41713
只有最后图像被完全上传。
我该怎么办?
你到图像提供不同的名字?你只是把数据放在服务器上,我认为使用putData,每次数据都被替换为新值,因为没有提供名称。 –