恢复 UploadTask 结果 E/StorageException:BufferedInputStream 已关闭

Resuming UploadTask results in E/StorageException: BufferedInputStream is closed

我无法从暂停状态恢复 UploadTask。如果我在不尝试暂停上传的情况下让它完成,我就能够成功上传视频。根据 Firebase Storage Android Documentation,您可以使用 resume 函数来恢复之前暂停的 UploadTask。不幸的是,当我尝试自己执行示例时,我观察到

04-11 15:20:36.285 9432-9660/io.pristine.firebasesample E/UploadTask: Unable to read bytes for uploading java.io.IOException: Stream closed at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162) at java.io.BufferedInputStream.read(BufferedInputStream.java:325) at com.google.android.gms.internal.zzbtu.zzqP(Unknown Source) at com.google.firebase.storage.UploadTask.zzacR(Unknown Source) at com.google.firebase.storage.UploadTask.run(Unknown Source) at com.google.firebase.storage.StorageTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761)

紧接着另一个:

04-11 15:20:36.285 9432-9660/io.pristine.firebasesample E/StorageException: StorageException has occurred. An unknown error occurred, please check the HTTP result code and inner exception for server response. Code: -13000 HttpResult: 200

HttpResult 200 似乎正常并且 -13000 looks like ERROR_UNKNOWN

I've uploaded an incredibly simple android project to reproduce the error -- just create a FirebaseStorage account and drop the google-services.json file in your project and set a username and password

在 github 存储库出现故障时重现的基本步骤:

  1. 使用 firebase 身份验证进行身份验证(不确定是否需要)
  2. 从资产中复制一个二进制文件(如果需要,您可以从 SD 卡读取)
  3. 使用 putFile(Uri, StorageMetadata) 启动 UploadTask
  4. 在上传开始后和完成前调用 UploadTask.pause() 暂停上传任务
  5. 通过调用 UploadTask.resume()
  6. 验证暂停后,在一两秒内恢复上传任务
  7. 观察存储异常

我使用 firebase-database:10.2.1firebase-auth:10.2.1firebase-storage:10.2.1 作为唯一的依赖项,并在多个支持 google 播放服务的设备上进行了测试。 (Google Play Availability: SUCCESS)

使用此功能的目的是允许应用程序的用户手动暂停和恢复上传。 (有些位于我知道的 android OS 不可见的 wi-fi 热点上)

这里是 Firebaser

该错误已在不久前修复,但尚未对客户端库进行修复。请在下一版本的 SDK 中查找更新。如果您仍有问题,请在此处回复。