首页 > 解决方案 > IllegalArgumentException:尝试将云 URL 链接到 Firebase 时,Firebase 存储 URL 必须指向存储桶中的对象

问题描述

我正在使用 Cloudiary 服务来减小上传视频的大小。我正在取回图片的 URL(我假设它是视频的第一帧)作为响应。尝试从 firebase 加载视频时,出于某种原因,我得到的是 URL 而不是 URI。这是我的方法-


 private void loadVideoUri(String storageUri) {
        if (StringUtils.isBlank(storageUri)) {
            return;
        }

        // load firebase storage
        Task<Uri> downloadUrlTask = FirebaseStorage.getInstance().getReferenceFromUrl(storageUri).getDownloadUrl(); // -> crash happends here
        if (getContext() instanceof Activity) {
            downloadUrlTask.addOnCompleteListener((Activity) getContext(), mOnDownloadUrlCompleted);
        } else {
            downloadUrlTask.addOnCompleteListener(mOnDownloadUrlCompleted);
        }

    }


这是完整的错误-


java.lang.IllegalArgumentException: Firebase Storage URLs must point to an object in your Storage Bucket. Please obtain a URL using the Firebase Console or getDownloadUrl().
        at com.google.firebase.storage.internal.Util.normalize(com.google.firebase:firebase-storage@@16.0.5:134)
        at com.google.firebase.storage.FirebaseStorage.getReferenceFromUrl(com.google.firebase:firebase-storage@@16.0.5:281)
        at com.onemdtalent.app.ui.views.mdview.FirebasePlayerView.loadVideoUri(FirebasePlayerView.java:156)

标签: androidfirebasefirebase-storage

解决方案


推荐阅读