android - 为什么 firebase 上传任务快照只返回 0 和 100% 的进度?
问题描述
Firebase 上传管理器在上传文件时仅返回 0 到 100%。许多stackoverflow的用户说,
- 仅当文件大小<256 kb(非常小)时才会发生
- 只有当文件大小大于 2 到 3 MB 时,它才能更好地工作。
但我想要顺利完成 0,1,2,3,...100% 的上传任务,是否有可能,如果可以,请解释。
filepath.putFile(sendingImageURI).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot)
{
double progress = ((100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount())/100;
Progressbar.setProgress((int) progress);
progressText.setText(String.valueOf(progress));
Log.i("progress",String.valueOf(progress));//this print 0 and 100 only
}
});
解决方案
听起来您已经有了答案:“仅当文件大小<256 kb(非常小)时才会发生”。SDK 只会为更大的上传字节增量调用您的回调。没有办法以编程方式控制这一点,除非您使用来自 GitHub 的代码构建您自己的 SDK 版本,该代码以您想要的方式工作。如果您想要不同的行为,您可以随时提交功能请求。
推荐阅读
- excel - 使用多个条件压缩嵌套的 if 语句
- macos - IOCreatePlugInInterfaceForService 失败 w/kIOReturnNoResources/0xe00002be
- mysql - 基于其他列从 1 列返回 2 个值的查询
- docker - 如何让 docker 容器使用主机网络?
- excel - 选择动态范围的单元格
- class - Haxe - 将字符串映射到类
- java - 调用多线程 C++ 代码时 JNI 是否正常工作?
- sql - 如何在 django 中使用 NOT IN sql 查询
- google-maps - 启用地理编码 API 时,Google Maps JavaScript API 抛出“ExpiredKeyMapError”
- javascript - 如何修复这个简单的均值计算器以使其正常工作,以及如何制作它以便它需要尽可能多的数字?