我在这样做时得到 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 效果很好。