恢复UploadTask会导致E / StorageException:BufferedInputStream已关闭

时间:2017-04-11 20:47:50

标签: android firebase firebase-storage

我无法从暂停状态恢复UploadTask。如果我让它完成而不试图暂停上传,我就能成功上传视频。根据{{​​3}},您可以使用resume函数恢复之前暂停的UploadTask。不幸的是,当我尝试自己执行样本时,我会观察到

  

04-11 15:20:36.285 9432-9660 / io.pristine.firebasesample E / UploadTask:无法读取上传的字节数                                                                         java.io.IOException:Stream已关闭                                                                             在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(未知来源)                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)                                                                             at 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似乎正常,Firebase Storage Android Documentation

-13000 looks like ERROR_UNKNOWN

在github repo出现故障时重现的基本步骤:

  1. 使用firebase身份验证进行身份验证(不确定是否需要)
  2. 从资产中复制二进制文件(如果需要,可以从SD卡中读取)
  3. 使用putFile(Uri,StorageMetadata)
  4. 启动UploadTask
  5. 在上传开始后和完成之前调用UploadTask.pause()暂停uploadTask
  6. 通过调用UploadTask.resume()
  7. 验证暂停后,在一两秒内恢复上传任务
  8. 观察存储异常
  9. 我正在使用firebase-database:10.2.1firebase-auth:10.2.1& firebase-storage:10.2.1作为唯一依赖项,并在具有Google Play服务支持的多个设备上进行了测试。 (Google Play Availability: SUCCESS

    使此功能正常工作的目的是允许应用程序的用户手动暂停和恢复上载。 (有些是关于计量的wi-fi热点,我知道的Android操作系统不可见)

1 个答案:

答案 0 :(得分:1)

Firebaser

这个错误已经修复了一段时间,但修复程序还没有进入客户端库。请在下一版SDK中查找更新。如果您仍有问题,请在此处发表评论。