本文介绍了无法从Firebase存储检索图像的下载URL(出现异常)[需要紧急帮助]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
该代码已成功将图像上传到Firebase Storage,但没有返回下载URL.我该如何解决?
The code successfully uploads an image to Firebase Storage but doesn't give back the download URL. How can I fix this?
我收到此异常: java.lang.IllegalArgumentException:存储桶的根部不支持getDownloadUrl().
为什么?
I get this exception: java.lang.IllegalArgumentException: getDownloadUrl() is not supported at the root of the bucket.
Why?
private void uploadFile() {
if (mImageUri != null) {
StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
+ "." + getFileExtension(mImageUri));
fileReference.putFile(mImageUri).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();
}
// Continue with the task to get the download URL
return mStorageRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
System.out.println("Upload success: " + downloadUri);
} else {
// Handle failures
// ...
}
}
});
} else {
Toast.makeText(this, "No file selected", Toast.LENGTH_SHORT).show();
}
}
推荐答案
我认为返回下载网址存在问题,请尝试以下代码:
I think there is problem in returning downloading url, try below code:
private void uploadFile() {
if (mImageUri != null) {
StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
+ "." + getFileExtension(mImageUri));
fileReference.putFile(mImageUri).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();
}
// Continue with the task to get the download URL
//change made here
return fileReference.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
System.out.println("Upload success: " + downloadUri);
} else {
// Handle failures
// ...
}
}
});
} else {
Toast.makeText(this, "No file selected", Toast.LENGTH_SHORT).show();
}
}
这篇关于无法从Firebase存储检索图像的下载URL(出现异常)[需要紧急帮助]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!