【发布时间】:2020-07-09 00:59:01
【问题描述】:
我需要这个:
我可以成功地将视频文件上传到 Firebase 存储,但我没有获得下载网址。这是我的上传代码:
Task<Uri> uriTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if(!task.isSuccessful())
throw task.getException();
downloadurl = mStorageRef.getDownloadUrl().toString();
return mStorageRef.child(name1).getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if(task.isSuccessful())
downloadurl = task.getResult().toString();
Map<String,Object> user = new HashMap<>();
user.put("videoname",name1);
user.put("videolink",downloadurl);
firebaseFirestore.collection("videos").document(userID).collection("video").document().set(user).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getActivity(),"Uploaded Successfully",Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
});
}
});
}
})
【问题讨论】:
-
mStorageRef.getDownloadUrl().toString()在这里不起作用,因为getDownloadUrl()返回一个任务。只有在该任务完成后,您才能获得实际的下载 URL。因此,获取下载 URL 的正确方法是向任务添加完成侦听器。见stackoverflow.com/questions/51056397/…
标签: android firebase firebase-storage