gpt4 book ai didi

java - 如何使用 Firebase 从上传的文件中获取下载网址

转载 作者:行者123 更新时间:2023-12-02 08:52:36 24 4
gpt4 key购买 nike

在阅读文档时,我发现有一节讨论如何上传文件并获取其下载链接。获取下载链接的代码是:

Kotlin

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
// ...
}
}

Java

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 的行是什么?是“return ref.getDownloadUrl();”/“ref.downloadUrl”吗?或者“Uri downloadUri = task.getResult();”/“val downloadUri = task.result”?

最佳答案

在这两种情况下,名为 downloadUri 的变量是最终的下载 URL。如果需要,您可以使用 downloadUri.toString() 将其转换为普通的旧字符串。

不是ref.getDownloadUrl()的返回值。这是一个非常常见的错误。 getDownloadUrl() 是异步的,不会立即返回 URL。这就是您需要回调的原因。

另请参阅:How to get URL from Firebase Storage getDownloadURL

关于java - 如何使用 Firebase 从上传的文件中获取下载网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60689182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com