我这样做时得到0:

uploadRef.getMetadata().addOnSuccessListener(new OnSuccessListener<StorageMetadata>() {
                @Override
                public void onSuccess(StorageMetadata storageMetadata) {
                    size=storageMetadata.getSizeBytes();
                }
            });


也是0

 UploadTask uploadTask = uploadRef.putFile(returnUri);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    size[0] = taskSnapshot.getMetadata().getSizeBytes();


这给出了错误:任务尚未完成

float test =uploadRef.getMetadata().getResult().getSizeBytes();

最佳答案

与变量“大小”的范围有关,这是一个愚蠢的错误。当存储在数据库中时,它没有获取变量“ size”的更新值。

方法2效果很好。

关于android - 如何通过Firebase中的存储引用获取文件大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38334863/

10-14 21:13
查看更多