android - taskSnapshot.getDownloadUrl() 方法不起作用
问题描述
private void uploadImageToFirebaseStorage() {
StorageReference profileImageRef =
FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");
if (uriProfileImage != null) {
progressBar.setVisibility(View.VISIBLE);
profileImageRef.putFile(uriProfileImage)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
progressBar.setVisibility(View.GONE);
profileImageUrl = taskSnapshot.**getDownloadUrl**().toString();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressBar.setVisibility(View.GONE);
Toast.makeText(ProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
taskSnapshot.getDownloadUrl()
方法不起作用在它下面出现红线
解决方案
编辑:请参阅此评论,了解为什么此答案中的方法不起作用:
firebaser here这个答案是错误的。虽然它起初看起来可以工作(因为它编译),但结果
getDownloadUrl().toString()
不是下载 URL,而是Task
对象的字符串表示。如需更好的答案,请参阅stackoverflow.com/a/55503926或Firebase 文档中的示例。
下面的原始答案...
在Firebase Storage API
版本 16.0.1 中,使用 taskSnapshot 对象的 getDownloadUrl() 方法已更改。现在你可以使用,
taskSnapshot.getMetadata().getReference().getDownloadUrl().toString()
从 Firebase 存储中获取下载 url。
推荐阅读
- json - 为全日历格式化 json
- python - 如何使用提交按钮更新我的 Django 数据库?
- python - Python 3.7.9:没有名为“discord”的模块
- php - 如何使for循环中的添加和子轨道数量按钮在php中正常工作
- spring-boot - MongoDB @Query 注释/查询的问题
- android - Android Kotlin:尝试在片段中检索上下文导致类型不匹配
- python - 测试数据的大小不适合模型(python)
- javascript - JS代码计算页面上的单词,而不是html文件
- javascript - 在一个范围内创建唯一的数字对并存储为对象
- python - python中的从句提取/长句分割