android - 如何返回上传图片的 URL
问题描述
尝试使用此文档获取上传到 Firebase 存储中的图像的 URL ,但没有关于如何从方法返回downloadUri
值的信息。Task.continueWithTask
甚至方法文档也无助于理解。
从文档中引用,没有解释如何获取此 URL:
上传文件后,您可以通过调用 StorageReference 上的 getDownloadUrl() 方法获取下载文件的 URL:
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
// ...
}
}
});
解决方案
我有一段时间没有使用 Firebase,但我以前的做法是分配 aSuccessListener
或OnCompleteListener
在调用之后ref.getDownloadUrl()
例子
ref.getDownloadUrl().addOnSuccessListener(url -> {
...
});
推荐阅读
- django - 在哪里保存每晚更新的文件?
- amazon-s3 - 本机脚本和 S3
- linux - Shell 脚本打算在“|”之后读取参数
- android - 如何在第一次应用程序启动时加载共享首选项
- reactjs - 如何正确输入 React.Children 和 React.cloneElement?
- sql - 对两个 SQL 表进行分组和求和,并替换缺失值
- javascript - 如何在画布中显示几个不同的图像?
- direct3d - Direct3D 9 Z-Buffer Precision Bug 仅在发布版本中出现
- texas-instruments - 有没有办法在 TI-Basic 的分屏模式下绘制 2 个不同的东西?
- reactjs - React 获取和显示数据问题