如何检查图像上传到Firebase存储的进度

7
当用户注册我的应用程序时,他们选择一个个人资料图片,输入姓名、电子邮件和密码。我使用Firebase使用电子邮件和密码对他们进行身份验证。我使用FIRAuth.auth()?.addAuthStateDidChangeListener来检测用户身份验证状态的更改。如果用户已通过身份验证,则执行内部代码(此代码将用户发送到下一个视图控制器)。问题在于,在我的数据添加到实时数据库和FirebaseStorage之前,内部代码就会触发。是否有一种方法可以监视两个任务何时成功,以便我可以触发视图控制器的更改?谢谢。
1个回答

13

Firebase在其教程中介绍了如何跟踪上传到其服务器的文件的进度:

let storageRef = FIRStorage.reference().child("folderName/file.jpg");
let localFile: NSURL = // get a file;

// Upload the file to the path "folderName/file.jpg"
let uploadTask = storageRef.putFile(localFile, metadata: nil)

let observer = uploadTask.observeStatus(.Progress) { snapshot in
  print(snapshot.progress) // NSProgress object
}

该快照提供了有用的信息,例如文件的总字节数以及到目前为止已上传的字节数。利用这些信息,您可以计算上传的百分比并将其用于更新应用程序中的任何UI控件。


1
我一定会仔细看看这个。我在查阅他们的文档时可能错过了它。 - Taylor Simpson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接