android - 恢复 UploadTask 导致 E/StorageException : BufferedInputStream is closed

标签 android firebase firebase-storage

我无法从暂停状态恢复 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$8.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. 从 Assets 中复制一个二进制文件(如果需要,您可以从 SD 卡读取)
  3. 使用 putFile(Uri, StorageMetadata) 启动 UploadTask
  4. 在上传开始后和完成前调用 UploadTask.pause() 暂停 uploadTask
  5. 通过调用 UploadTask.resume() 确认上传任务暂停后,在一两秒内恢复上传任务
  6. 观察存储异常

我正在使用 firebase-database:10.2.1firebase-auth:10.2.1 & firebase-storage:10.2.1 作为唯一的依赖项,并在多个支持 google play 服务的设备上进行了测试。 (Google Play 可用性:成功)

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

最佳答案

这里是 Firebaser

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

关于android - 恢复 UploadTask 导致 E/StorageException : BufferedInputStream is closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43355928/

相关文章:

google-cloud-storage - 适用于 Google Cloud Storage Bucket 的 Cloudflare CDN

android - 更改搜索 View 中的文本

php - Android - Web 服务、php 与 ASP.NET、XML 与 JSON?

javascript - 将新数据推送到 firebase 数据库时设置自定义数字键

firebase - 如何在 Firebase 云函数处理程序中设置主题过滤器?

firebase - 错误存储/未知上传图片到 Firebase 存储

java - 致命异常主要在 onclick

java - 每次我使用终端命令构建项目时,cordova 项目 native 应用程序中的 config.xml 都会更新

ios - 在闭包之外访问数据,Firebase ObserveSingleEvent//SWIFT

firebase - Flutter web - 无法加载网络图像