Swift/Firebase:是否取消下载图像?

Swift/Firebase:是否取消下载图像?,swift,xcode,firebase,google-cloud-firestore,Swift,Xcode,Firebase,Google Cloud Firestore,我实现了以下基本代码以从Firebase下载图像。该函数是从UICollectionViewCell中调用的。在某些情况下,用户可能会快速滚动单元格,在这种情况下,如果.getData下载任务尚未返回,我希望取消该任务有没有办法取消.getData? private func downloadImage(path: StorageReference, handler: @escaping (_ image: UIImage?) -> ()) { if let cachedI

我实现了以下基本代码以从Firebase下载图像。该函数是从UICollectionViewCell中调用的。在某些情况下,用户可能会快速滚动单元格,在这种情况下,如果.getData下载任务尚未返回,我希望取消该任务有没有办法取消.getData?

private func downloadImage(path: StorageReference, handler: @escaping (_ image: UIImage?) -> ()) {
        if let cachedImage = imageCache.object(forKey: path) {
            handler(cachedImage)
        } else {
            path.getData(maxSize: 27 * 1024 * 1024) { (data, error) in
                if let data = data, let image = UIImage(data: data) {
                    handler(image)
                    imageCache.setObject(image, forKey: path)
                } else {
                    handler(nil)
                    guard let error = error else { return }
                    print(error)
                }
            }
        }
    }

如果将Firebase存储操作捕获为属性,则可以调用这些操作的方法来暂停、恢复或取消这些操作。例如:

let download = path.getData(maxSize: 27 * 1024 * 1024) { (data, error) in
    if let data = data, let image = UIImage(data: data) {
        handler(image)
        imageCache.setObject(image, forKey: path)
    } else {
        handler(nil)
        guard let error = error else { return }
        print(error)
    }
}

download.pause()
download.resume()
download.cancel()

这正是我想要的。谢谢