[英]Firebase download progress observer error Swift 3
试图显示firebase下载进度,收到错误
“FIRStorageRef类型的值没有成员观察”。
这是我从firebase文档中获得并尝试使用的代码。
storage = FIRStorage.storage()
let storageRef = storage.reference().child("Audio").child(successFileName)
self.titleLabel.text = self.successTitlename
SwiftSpinner.show("Loading...")
storageRef.downloadURL { url, error in
if error != nil {
SwiftSpinner.show("Couldn't load Audio...Tap to dismiss").addTapHandler({
SwiftSpinner.hide()
})
**Getting error here**
storageRef.observe(.progress) { snapshot in
// Download reported progress
let percentComplete = 100.0 * Double(snapshot.progress!.completedUnitCount)
/ Double(snapshot.progress!.totalUnitCount)
}
}
任何帮助将不胜感激,提前谢谢。
downloadURL()
不会像其他下载函数那样生成下载任务,如下载文件 - 监视下载进度 ,因为它只返回下载URL而不是文件的数据。
您需要使用以下之一: write(toFile:)
或getData(maxSize:)
,最后是task.observeStatus(.progress)
。 第一个将它下载到本地文件,而后者在内存中这样做。
来自docs的样本( 完整来源 ):
// Create a reference to the file we want to download
let starsRef = storageRef.child("images/stars.jpg")
// Create local filesystem URL
let localURL = URL(string: "path/to/stars.jpg")!
// Start the download (in this case writing to a file)
let downloadTask = storageRef.write(toFile: localURL)
// Download in memory with a maximum allowed size of 10MB
// let downloadTask = storageRef.getData(maxSize: 10 * 1024 * 1024)
downloadTask.observe(.progress) { snapshot in
// Download reported progress
let percentComplete = 100.0 * Double(snapshot.progress!.completedUnitCount)
/ Double(snapshot.progress!.totalUnitCount)
print("Done: \(percentComplete)%")
}
downloadTask.observe(.success) { snapshot in
// Download completed successfully
print("Downloaded successfully")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.