android - 使用 Firebase 上传更新进度条

标签 android firebase firebase-storage

我试图在 firebase 上上传文件时添加一个进度条。但不幸的是,它并不表示上传进度。 logcat 和进度条都只指示文件何时达到 100%

   uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                double progress = 100.0 * (taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
                System.out.println("Upload is " + progress + "% done");
            int currentprogress = (int) progress;
                progressBar.setProgress(currentprogress);
            }
        }).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
                System.out.println("Upload is paused");
            }
        });

最佳答案

更改progress 计算中的术语分组以强制转换为 float 。正如您现在的代码一样,您正在划分两个 long。除法的结果将为 0,直到 getBytesTransferred() == getTotalByteCount(),然后为 1。

 double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();

关于android - 使用 Firebase 上传更新进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38278249/

相关文章:

java - Android - 我将如何动态更改 clickListener

android - Eclipse : Android Device Chooser - Unknown Android 2. 3.4 设备

node.js - 无法使用对话流实现将数据添加到 firestore

swift - 如何在 swift 的注册页面中强制输入用户名

firebase - 如何在Firebase中自动导入Google云存储的存储桶?

javascript - Firebase 存储 API - 上传包含元数据的文件

android - Xamarin Android - 排序 iBeacon iCollection 导致异常

android - TaskStackBuilder 过渡动画

javascript - 如何手动将图像分配给变量/对象属性?

swift - Firebase Firestore 弄乱了数组的顺序