首页 > 解决方案 > 无法从 Firebase 存储中检索图像:该位置不存在对象

问题描述

我的应用程序有问题。我将图像上传到 Firebase 存储,但现在我无法检索它,我收到一条错误消息:

E/StorageException: StorageException has occurred.
    Object does not exist at location.
     Code: -13010 HttpResult: 404

我的代码如下:

private void getImage() {
        mStorage = FirebaseStorage.getInstance("gs://bucket");
        mStorageReference = mStorage.getReference().child("/animal_images/animals" + System.currentTimeMillis() + ".png");
        final long ONE_MEGABYTE = 1024 * 1024;
        mStorageReference.getBytes(ONE_MEGABYTE).addOnSuccessListener(bytes -> {
            Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
            DisplayMetrics displayMetrics = new DisplayMetrics();
            getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            mImageView.setMinimumHeight(displayMetrics.heightPixels);
            mImageView.setMinimumWidth(displayMetrics.widthPixels);
            mImageView.setImageBitmap(bitmap);
        }).addOnFailureListener(e -> Log.e("TAG", "Cannot load image" + e.getMessage()));
    }

我检查了存储路径,一切正常,我在这里做错了什么。任何建议。

标签: androidfirebasefirebase-storage

解决方案


当您创建存储的引用时:

mStorageReference = mStorage.getReference().child("/animal_images/animals" + System.currentTimeMillis() + ".png");

你写System.currentTimeMillis()的值不是恒定的,会不时改变。这意味着您基本上是在搜索由于时间变化而具有更改值的名称。名称为新时间的图像不存在。这就是你找不到它的原因。


推荐阅读