我这样做时得到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/