繁体   English   中英

Firebase下载进度观察者错误Swift 3

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM