【发布时间】:2017-09-07 10:20:41
【问题描述】:
我无法从暂停状态恢复 UploadTask。如果我让它完成而不尝试暂停上传,我就能成功上传视频。根据Firebase Storage Android Documentation,您可以使用resume 函数来恢复之前暂停的UploadTask。不幸的是,当我尝试自己执行示例时,我观察到了
04-11 15:20:36.285 9432-9660/io.pristine.firebasesample E/UploadTask:无法读取上传字节 java.io.IOException:流已关闭 在 java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162) 在 java.io.BufferedInputStream.read(BufferedInputStream.java:325) 在 com.google.android.gms.internal.zzbtu.zzqP(未知来源) 在 com.google.firebase.storage.UploadTask.zzacR(未知来源) 在 com.google.firebase.storage.UploadTask.run(未知来源) 在 com.google.firebase.storage.StorageTask$8.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761)
紧接着是另一个:
04-11 15:20:36.285 9432-9660/io.pristine.firebasesample E/StorageException:发生 StorageException。 发生未知错误,请检查服务器响应的 HTTP 结果代码和内部异常。 代码:-13000 HttpResult:200
HttpResult 200 看起来很正常,-13000 looks like ERROR_UNKNOWN
在 github 存储库出现故障时重现的基本步骤:
- 使用 Firebase 身份验证进行身份验证(不确定是否需要)
- 从 assets 中复制一个二进制文件(如果需要,您可以从 sd 卡中读取)
- 使用 putFile(Uri, StorageMetadata) 启动 UploadTask
- 在上传开始之后和完成之前调用 UploadTask.pause() 来暂停上传任务
- 通过调用 UploadTask.resume() 确认上传任务暂停后,在一两秒内恢复上传任务
- 观察存储异常
我使用 firebase-database:10.2.1、firebase-auth:10.2.1 和 firebase-storage:10.2.1 作为唯一的依赖项,并在支持 google play 服务的多个设备上进行了测试。 (Google Play Availability: SUCCESS)
让此功能发挥作用的目的是让应用程序的用户可以手动暂停和恢复上传。 (有些是在计量的 Wi-Fi 热点上,我知道的 android 操作系统不可见)
【问题讨论】:
标签: android firebase firebase-storage