[英]How to get download url from uploaded files using Firebase
阅读文档,我找到了一个讨论如何上传文件并获取其下载链接的部分。 获取下载链接的代码是:
科特林
val ref = storageRef.child("images/mountains.jpg")
uploadTask = ref.putFile(file)
val urlTask = uploadTask.continueWithTask { task ->
if (!task.isSuccessful) {
task.exception?.let {
throw it
}
}
ref.downloadUrl
}.addOnCompleteListener { task ->
if (task.isSuccessful) {
val downloadUri = task.result
} else {
// Handle failures
// ...
}
}
爪哇
final StorageReference ref = storageRef.child("images/mountains.jpg");
uploadTask = ref.putFile(file);
Task<Uri> urlTask = 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();
}
// Continue with the task to get the download URL
return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
} else {
// Handle failures
// ...
}
}
});
但是我得到下载 URL 的那一行是什么? 是“返回 ref.getDownloadUrl();”/“ref.downloadUrl”吗? 还是“ Uri downloadUri = task.getResult();
”/“ val downloadUri = task.result
”?
在这两种情况下,名为downloadUri
的变量是最终下载 URL。 如果需要,您可以使用downloadUri.toString()
将其转换为普通的旧字符串。
它不是ref.getDownloadUrl()
的返回值。 这是一个很常见的错误。 getDownloadUrl()
是异步的,不会立即返回 URL。 这就是为什么你需要回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.