作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Firebase 存储从 Android 应用程序上传文件。从 FirebaseStorage
获取文件存储引用后,使用 uploadTask
正确上传文件。我的发现是,在 uploadTask
的 onProgress
监听器期间,taskSnapshot.getTotalByteCount()
为 -1。而 taskSnapshot.getBytesTransferred()
给出了正确的结果。是 Firebase 的错误吗?
注意:文件上传没有问题。
这是我的代码截图:
try {
uploadTask = fileReference.putStream(new FileInputStream(imageFile));
} catch (Exception e) {
e.printStackTrace();
}
uploadTask.addOnProgressListener(this, new
OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
// here taskSnapshot.getTotalByteCount() is -1
double progressPersentage = ((taskSnapshot
.getBytesTransferred() * 100.0) / taskSnapshot
.getTotalByteCount());// for file transfer
Log.d(this.getClass().getName(), taskSnapshot
.getTotalByteCount() + " Uploading " + (taskSnapshot
.getBytesTransferred()));
}
})
最佳答案
因为流表示未指定长度的字节序列,所以 getTotalByteCount()
是未知的并不是不合理的。
使用 putFile() 会得到更好的结果:
uploadTask = fileReference.putFile(Uri.fromFile(imageFile));
关于android - 将文件上传为 putStream 时 Android 中的 Firebase 存储,在 onProgressListener TaskSnapshot.getTotalByteCount() 中返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42151792/
我正在使用 Firebase 存储从 Android 应用程序上传文件。从 FirebaseStorage 获取文件存储引用后,使用 uploadTask 正确上传文件。我的发现是,在 uploadT
我是一名优秀的程序员,十分优秀!