firebase - 未从 Firebase 存储中检索到下载 URL
问题描述
uploadTask
.addOnSuccessListener(AdminDisplayProductActivity.this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(final UploadTask.TaskSnapshot taskSnapshot) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mProgressBar.setProgress(0);
downloadUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
AddProduct(downloadUrl);
Toast.makeText(AdminDisplayProductActivity.this, "Uploaded !" + downloadUrl, Toast.LENGTH_SHORT).show();
}
}, 500);
Toast.makeText(AdminDisplayProductActivity.this, "File Uploaded"
, Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(AdminDisplayProductActivity.this, "Upload Fail !", Toast.LENGTH_SHORT).show();
}
})
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
mProgressBar.setProgress((int) progress);
}
});
解决方案
getDownloadUrl() 返回一个 Task 对象,您需要在该对象上附加一个完成侦听器。getDownloadUrl() 上的 toString() 最终将为您提供 firebase 用于下载 url 的类的名称。
请在此处附加一个侦听器,在侦听器内部,您将获得 Uri 格式的下载 url。
推荐阅读
- flutter - 如何移动flutter bin文件
- javascript - 使用 Vue 方法访问 DOM 元素
- javascript - 判断浏览器是否已经打开了一个 URL
- php - 使用php在5秒内将数据保存到MySQL
- bash - 从 Jenkins Bash 脚本标记一个仓库
- java - android循环继承涉及Fragment Activity和Main Activity之间
- html - 如何在 HTML 上应用白色“过滤器”(alpha 50%)
- python - python os.rename 目录不为空
- python - Django 记录器在级别之间混合:错误和信息
- python - 动态动画图表不使用 matlibplot.animation