gpt4 book ai didi

android - 将文件上传为 putStream 时 Android 中的 Firebase 存储,在 onProgressListener TaskSnapshot.getTotalByteCount() 中返回 -1

转载 作者:行者123 更新时间:2023-11-29 19:22:22 27 4
gpt4 key购买 nike

我正在使用 Firebase 存储从 Android 应用程序上传文件。从 FirebaseStorage 获取文件存储引用后,使用 uploadTask 正确上传文件。我的发现是,在 uploadTaskonProgress 监听器期间,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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com