Ios Firebase下载任务队列Swift

Ios Firebase下载任务队列Swift,ios,swift,firebase,uiviewcontroller,firebase-storage,Ios,Swift,Firebase,Uiviewcontroller,Firebase Storage,我目前正在从Firebase存储下载图像文件,其中包含UICollectionView中缩略图的以下代码。当我点击其中一个缩略图时,应用程序会转到另一个UIViewController,然后从Firebase存储下载更多图像。 当前,应用程序等待所有缩略图完成下载,然后在UIViewController中下载下一幅图像。是否可以在UIViewController中增加新图像的优先级,或取消所有其他下载以立即启动新图像 var imageRef = storageRef.child("Thumbn

我目前正在从Firebase存储下载图像文件,其中包含
UICollectionView
中缩略图的以下代码。当我点击其中一个缩略图时,应用程序会转到另一个
UIViewController
,然后从Firebase存储下载更多图像。 当前,应用程序等待所有缩略图完成下载,然后在
UIViewController
中下载下一幅图像。是否可以在
UIViewController
中增加新图像的优先级,或取消所有其他下载以立即启动新图像

var imageRef = storageRef.child("Thumbnails/\(itemID).jpg")
imageRef.getData(maxSize: 10 * 1024 * 1024) { data, error 
    if let error = error {
        // Uh-oh, an error occurred!
        print("Error: \(error.localizedDescription)")
     } else {
        let image = UIImage(data: data!)
        self.newsNameArray.append(name)
        self.newsImageArray.append(image!)
        self.newsBarCollectionView?.reloadData()                        
      }
}

谢谢

您可以获得对StorageDownloadTask的引用,如下所示:

var allTasks: [StorageDownloadTask] = []

var imageRef = storageRef.child("Thumbnails/\(itemID).jpg")
let downloadTask = imageRef.getData(maxSize: 10 * 1024 * 1024) { data, error 
    if let error = error {
        // Uh-oh, an error occurred!
        print("Error: \(error.localizedDescription)")
     } else {
        let image = UIImage(data: data!)
        self.newsNameArray.append(name)
        self.newsImageArray.append(image!)
        self.newsBarCollectionView?.reloadData()                        
      }
}
将下载的任务存储在阵列中,并在下载新图像之前取消所有任务:

allTasks.append(downloadTask)

...

for task in allTasks {
    task.cancel()
}