【问题标题】:Why does Glide not Working with Firebase Storage为什么 Glide 不能与 Firebase 存储一起使用
【发布时间】:2020-08-16 16:39:29
【问题描述】:

我正在尝试从 Firebase 存储加载图像,但在使用 Glide 时出现异常

我的代码

storageReference=FirebaseStorage.getInstance().getReference().child("profiles/"+firebaseUser.getUid()+"/"+"profilePic");
            Glide.with(FinishIntroActivity.this)
                    .load(storageReference.getDownloadUrl())
                    .into(profileFinishImg);

我的摇篮

implementation 'com.github.bumptech.glide:glide:4.8.0'

我遇到的异常

W/Glide: Load failed for com.google.android.gms.tasks.zzu@669eaa8 with size [525x525]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There was 1 cause:
    com.bumptech.glide.Registry$NoModelLoaderAvailableException(Failed to find any ModelLoaders for model: com.google.android.gms.tasks.zzu@669eaa8)
     call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: com.google.android.gms.tasks.zzu@669eaa8
2020-05-02 11:32:07.951 8343-8343/com.happyorbit.happyorbit I/Glide: Root cause (1 of 1)
    com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: com.google.android.gms.tasks.zzu@669eaa8
        at com.bumptech.glide.Registry.getModelLoaders(Registry.java:584)
        at com.bumptech.glide.load.engine.DecodeHelper.getLoadData(DecodeHelper.java:205)
        at com.bumptech.glide.load.engine.DecodeHelper.getCacheKeys(DecodeHelper.java:223)
        at com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext(ResourceCacheGenerator.java:44)
        at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:302)
        at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:269)
        at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:233)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)
        at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)

请帮助我正确使用 Glide。谢谢

【问题讨论】:

    标签: android firebase imageview firebase-storage android-glide


    【解决方案1】:

    documentation 中可以看出,getDownloadUrl() 实际上并没有返回 URL。如果您向其添加侦听器,它会异步返回一个任务,该任务将为您提供 URL。只有在将 URL 传递给侦听器后,您才能获得该 URL,并且您无法保证何时完成。

    我建议阅读其他问题的答案以获取更多详细信息和示例:How to get URL from Firebase Storage getDownloadURL

    另一种选择是使用 FirebaseUI Storage 作为 Glide 的插件,它将为您完成大部分繁重的工作。

    【讨论】:

      猜你喜欢
      • 2022-08-22
      • 2017-09-03
      • 2021-10-20
      • 2020-10-10
      • 1970-01-01
      • 2020-06-19
      • 2018-03-09
      • 2021-06-14
      • 2012-10-09
      相关资源
      最近更新 更多