无法在 ImageView 中显示来自 Firebase 存储的图像

2023-12-08

我有一个应用程序,允许用户将图像上传到 Firebase 存储桶,然后我获取图像文件的下载 URL 并将其添加到 Firebase 数据库中。URL 的形式为:-https://firebasestorage.googleapis.com/v0/b/bucket_name.appspot.com/o/filename?alt=media&token=token

然后我尝试使用 Glide 将图像加载到 RecyclerView 中,但我无法这样做,并且无法显示图像。

如何获得以 .png 或 .jpeg 等结尾的绝对图像 URL,可以轻松用于加载图像。据我所知,问题出在 url 上


从相机获取图像

                    Intent i = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    startActivityForResult(i, 3);

获取图像的文件路径

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_FILE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {

      String  path=String.valueOf(data.getData());
      file = Uri.fromFile(new File(path));

创建文件元数据

  metadata = new StorageMetadata.Builder()
    .setContentType("image/jpeg")
    .build();

将文件和元数据上传到路径“images/avator.jpg”

  uploadTask = storageRef.child("images/"+file.getLastPathSegment()).putFile(file, metadata);

侦听状态更改、错误和上传完成情况。

  uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
    double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
    System.out.println("Upload is " + progress + "% done");
}
}).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
@Override
public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
    System.out.println("Upload is paused");
}
}).addOnFailureListener(new OnFailureListener() {
 @Override
public void onFailure(@NonNull Exception exception) {
    // Handle unsuccessful uploads
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
    // Handle successful uploads on complete
    Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl();

}

});

使用 Glide 库加载图像

  Glide.with(getActivity())
.load(new File(downloadUrl)) // Uri of the picture
.into(Imageview);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 ImageView 中显示来自 Firebase 存储的图像 的相关文章

随机推荐

  • 使用 jQuery 将列表中的元素集包装在 DIV 中

    我有一个很长的名字列表 每个名字都将包含在span tags Example span Yang Zajicek span span Daniela Athey span span Alanna Bumpers span span Audr
  • 如何在可移植类库中使用MEF?

    我有针对 NET 4 5 和 Windows 应用商店应用程序的可移植类库 根据 MSDN 此设置应该提供 MEF但事实并非如此 命名空间System ComponentModel Composition不可用 我什至尝试过System C
  • 如何更正 NginX 反向代理配置中的 Meteor 基本 URL?

    我已经通过反向代理 在 Ubuntu 服务器上 在 NginX 后面安装了 Apache 和 Meteor Apache 直接映射为 baseURL www mydomain com Meteor 映射为子文件夹 www mydomain
  • 如何备份/恢复Firebird数据库?

    我对 Firebird v2 5 备份 恢复过程感到非常困惑 我应该使用什么来备份 恢复本地 Firebird 数据库 fbsvcmgr exe gbak exe isql exe or nbackup exe 这些都是选项还是我错了 对于
  • 更改生命周期映射中的默认 mojo 配置

    我正在编写一个 Maven 3 插件 它为另一个应用程序构建插件 插件基本上是一个带有一些奇特清单的 JAR 文件 编译后的类需要进行后处理 以便插件能够与主机应用程序的生产版本一起使用 不幸的是 该插件的处理版本无法与主机的调试版本一起使
  • java.lang.RuntimeException:找不到 FacesContext(JSF 1.2 + Primefaces + Tomcat 6)[重复]

    这个问题在这里已经有答案了 当尝试在 Tomcat 6 上运行我的项目时 我遇到了这个问题 SEVERE Servlet service for servlet jsp threw exception java lang RuntimeEx
  • 为什么垃圾收集器不收集任务对象

    特别是当没有活动线程引用它时 我认为 GC 会考虑所有 net 线程来查找引用 它也会检查其他地方的引用吗 编辑 例如 让我们假设我们在一个控制台应用程序中 main 调用一个创建本地task1 的方法 然后应用task1 Continue
  • 按值“名称”合并 2 个 CSV 并合并计数 (Powershell)

    所以目前我正在寻找一种合并 2 个 CSV 文件的方法 这是我的意思的一个例子 CSV1 Name Count Klaus 3 Hans 2 Gerhard 1 Nina 6 Julia 10 Caro 19 CSV2 Name Count
  • 从 Python 控制 Libreoffice Impress

    我正在编写一个面向演讲者和会议的应用程序 我用 Python 编写并专注于 Linux 我想知道是否可以在 Linux 下使用 Python 以某种方式控制 LibreOffice Impress 我想从我的 Python 应用程序启动一个
  • iBeacon每1分钟不断进入和退出区域

    当 iBeacon 使用 Kontakt Beacon 在后台模式下进入某个区域时 我设法获得本地通知 同时 我监控 3 个具有特定且唯一标识符的信标区域 每个区域具有相同的 UUID 但具有唯一的主要和次要组合 在锁屏模式下 我的应用程序
  • C# 文本框显示以前写的文本

    例如 如果您访问 Facebook 并双击登录文本框 则会出现一些以前有人写过的登录信息 有什么方法可以在 C 文本框中生成以前输入的下拉菜单吗 我不想要组合框 See the 文本框 自动完成模式 and 文本框 自动完成源文本框的属性
  • PHP不会显示任何错误

    这是我的代码 echo foo error reporting E ALL echo this line doesnt end in a semi colon echo i should get an error here 当我运行这个时
  • PDF - Adob​​e 数字版

    我想使用 Adob e Digital Edition 保护 pdf 文档 我认为它目前被用来保护电子书以防止非法流通 任何人都可以对此有所了解吗 是否可以使用 C 或其他东西来做到这一点 您可能想看看Adobe 内容服务器和Adobe数字
  • 原子最大+原子CAS(atomicExch)

    我想问一下大家是否有更好的方法来组合2个原子 我的目标是在 J 个参数值列表 非常类似于 2 路输入 下找到一组 K 个方程 超过 32 个 的最高结果 并保存该值和 j 索引 if atomicMax max k id t max lt
  • 在 SQL Server 中禁用打印

    我有一个包含许多调试消息的脚本 这些消息由PRINT功能 有什么办法可以禁用该消息吗 我想到了类似的事情SET NOCOUNT ON 但用于用户消息 我喜欢在我的脚本 SP 中设置一个变量 Debug tinyint 默认 将其设置为 0
  • Android 如何以编程方式打开请勿打扰(dnd)

    如何在 Android 中以编程方式打开 关闭 请勿打扰 dnd 我希望这能给我一些东西 但事实并非如此 Settings System putInt getContentResolver Settings System DO NOT DI
  • 通过对象数组中的ID字段将字段值收集到数组中

    我无法修改 JSON 文件 尝试使用我所有关于循环 map filter 和条件 if else JavaScript 的知识 但什么也没有出来 请告诉我如何从此文件制作这样的文件 model 2002R Protection Pack M
  • LinearLayout 只允许添加一个视图

    layout new LinearLayout this addContentView layout new LayoutParams LayoutParams FILL PARENT LayoutParams WRAP CONTENT B
  • 如何使我的“显示和隐藏行”脚本在 Google 表格中正常运行

    我试图在 谷歌表格 工作表 Info Pull 中有一个脚本 根据 C 列的内容显示 隐藏行 目前我正在 C 列中运行以下公式 if or len H47 gt 0 len I47 gt 0 len J47 gt 0 len K47 gt
  • 无法在 ImageView 中显示来自 Firebase 存储的图像

    我有一个应用程序 允许用户将图像上传到 Firebase 存储桶 然后我获取图像文件的下载 URL 并将其添加到 Firebase 数据库中 URL 的形式为 https firebasestorage googleapis com v0