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

2024-03-17

我无法从暂停状态恢复 UploadTask。如果我让它完成而不尝试暂停上传,我就能够成功上传视频。根据Firebase 存储 Android 文档 https://firebase.google.com/docs/storage/android/upload-files#manage_uploads你可以使用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 看起来像 ERROR_UNKNOWN https://developers.google.com/android/reference/com/google/firebase/storage/StorageException.html#ERROR_UNKNOWN

我上传了一个非常简单的 Android 项目来重现该错误 - 只需创建一个 FirebaseStorage 帐户并将 google-services.json 文件放入您的项目中并设置用户名和密码 https://github.com/pristineio/Firebase-Sample/tree/firebase-storage-bug

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

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

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

使此功能发挥作用的目标是允许应用程序的用户手动暂停和恢复上传。 (有些位于 Wi-Fi 热点上,据我所知,这些热点是按流量计费的,对于 Android 操作系统来说是不可见的)


火力战士在这里

该错误不久前已修复,但修复尚未到达客户端库。请查找下一版本 SDK 的更新。如果您仍然遇到问题,请在此处发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

恢复 UploadTask 会导致 E/StorageException:BufferedInputStream 已关闭 的相关文章

随机推荐

  • Objective C UITableView - 更改单元格高度后表格单元格显示错误的内容

    我正在尝试在 xcode 中构建一个应用程序 它除了其他应用程序之外还读取 rss 提要并显示帖子 我是 Objective C 的新手 有时发现它有点困难 我使用 NSMutableArray 来获取检索到的故事 帖子 每个故事都由一个
  • 使用 RVM 安装 Ruby 2.1.3 时出错

    我正在尝试使用 RVM 安装 Ruby 2 1 3 我安装了最新版本的 XCode 并且全新安装了 rvm 我基本上在做 rvm autolibs brew rvm install ruby 2 1 3 一切看起来都工作正常 但随后我收到此
  • CGContext 文本绘制在 iPhone 4 上无法按比例放大

    我正在尝试创建一个可以在 iPhone 4 上很好地缩放的应用程序 目前 它的大部分都可以完美缩放 除了一个关键部分 我在 CALayer 中的 drawInContext 方法内绘制的文本 这是我的代码 void drawInContex
  • 挂钩事件 Outlook VSTO 在主线程上继续工作

    我开发了一个 Outlook VSTO 插件 有些任务应该在后台线程上完成 通常 检查本地数据库中的某些内容或调用网络请求 阅读了几篇文章后 我放弃了在后台线程中调用 Outlook 对象模型 OOM 的想法 我有一些 wpf 控件 并且我
  • 在 django-rest-framework 中创建一个带有关系的rest api

    在 django rest framework 中创建一个rest api 我有2张桌子 拳头表 用户 id PK Name varchar 255 第二个表 地址 id PK address varchar 255 city id int
  • 如何将多个 UIBarButtonItem 添加到 UINavigationBar?

    我想添加很多UIBarButtonItem s to a UINavigationbar 不仅仅是左右按钮 logoButton UIBarButtonItem alloc initWithTitle A Button style UIBa
  • WP7 - 防止 RestSharp 缓存

    我在 Windows Phone 7 1 项目中使用 RestSharp 我的问题是 RestSharp 总是缓存响应数据 Example 我第一次发送请求时 它正确返回数据 经过一些删除操作后 我再次发送该请求 但响应似乎与第一次相同 没
  • 从结账后挂钩中检索分支名称

    当在 Git 中从一个分支切换到另一个分支时 是否有任何方法可以从 post checkout 挂钩中检索两个分支的名称 所以假设我要运行以下两个命令 git branch branch a branch b master git chec
  • 以递归函数的形式返回

    我想了解如何在 C 中使用递归 但我不明白如何return在其中工作 请考虑以下代码 int recur int i printf recur i d n i if i lt 3 recur i 1 return 10 else if i
  • SHA512 哈希值在 android、php 和 javascript 上有所不同

    我正在使用 SHA512 哈希在我的应用程序与其后端之间传输一些加密数据 然而 我遇到了一个奇怪的情况 不知道是什么原因造成的 因此 我测试了以下设置 安卓 2x SHA512 Android 1x SHA512 gt CryptoJS 1
  • Snackbar 和其他动画在某些 Android 设备上停止工作

    我有一个非常奇怪的问题 我无法弄清楚 直到最近我才成为一个问题 但我似乎无法恢复以防止它 另一个奇怪的事情是它可以在某些设备上运行 而在其他设备上则不能 问题是动画 其中一个特别是小吃店 小吃栏应该上下动画 但事实并非如此 它只是显示然后隐
  • 如何在haskell中将函数类型序列化为json?

    data Task Task id String description String dependsOn String dependentTasks String deriving Eq Show Generic ToJSON FromJ
  • Django Rest框架具有多个模型的嵌套字段

    这是 django 和 django Rest 框架 我有 2 个模型 用户和电话 第一个问题 我希望能够与电话一起更新用户数据 电子邮件 1 个 API 更新响应中的数据 电话号码 电话号码可以 为 0 个或多个 嗯 实际上就像parti
  • 如何更新媒体商店中的流派?

    我正在尝试更新音频文件的流派标签 CODE final Uri genreUri MediaStore Audio Genres EXTERNAL CONTENT URI String currentGenreName MediaStore
  • R:整数与数字

    这个问题也许之前已经得到了回答 但我没有看到答案 我有一个由数字和缺失值组成的数据集 一行是一个百分比 下面是一小组假数据 其中 AA BB 和 CC 是列名称 该数据集中的第三行是百分比 AA BB CC 234 432 78 1980
  • jssor滑块宽度问题

    超级困惑如何调整这个滑块的宽度 我尝试编辑jquery 你会看到它被注释掉了 jQuery document ready function var nestedSliders each sliderh1 container sliderh2
  • 使用空手道框架生成单个 cucumber.json

    我在空手道测试中使用并行执行 我试图在里面生成一个 cucumber json 文件target文件夹 在当前设置下 surefire reports 文件夹中有不同的 json 和 xml 文件 有没有办法可以生成包含功能结果的单个 js
  • 如何在SQL中选择没有时间的日期

    当我在 SQL 中选择日期时 它返回为2011 02 25 21 17 33 933 但我只需要日期部分 即2011 02 25 我怎样才能做到这一点 对于 SQL Server 2008 Convert date getdate 请参阅h
  • 在某些情况下禁用自动桥接

    From 将 Swift 与 Cocoa 和 Objective C 结合使用 使用 Cocoa 框架 https developer apple com library prerelease content documentation S
  • 恢复 UploadTask 会导致 E/StorageException:BufferedInputStream 已关闭

    我无法从暂停状态恢复 UploadTask 如果我让它完成而不尝试暂停上传 我就能够成功上传视频 根据Firebase 存储 Android 文档 https firebase google com docs storage android