如何从 Android 上的 Firebase 存储下载图像?

Aug*_*sto 2 android firebase firebase-storage

我正在使用 Firebase 存储来存储图像。我无法在Android上下载这些。我想下载文件夹的所有图像,但现在我只想下载一个,因为我还不知道如何将所有图像下载为列表。我正在尝试这个

public static final String TAG = "AtividadesFragment";
    ImageView imageView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_atividades,container,false);
        Log.i(TAG,"onCreateView()");
        imageView = (ImageView) v.findViewById(R.id.image);
        return v;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        FirebaseStorage storage = FirebaseStorage.getInstance();
        StorageReference ref = storage.getReference().child("ImagensExercicios/abdominal_1.bmp");

        Glide.with(getActivity()).using(new FirebaseImageLoader()).load(ref).into(imageView);
    }
Run Code Online (Sandbox Code Playgroud)

xml:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

但什么也没有发生。

在此处输入图片说明

Mag*_*eed 5

我正在使用以下代码从 Firebase 存储中获取 jpg 图像。要获得bmp图像,我认为区别在于File.createTempFile("Images","jpg") //或bmp的参数。我希望它也对你有用。

private Bitmap my_image;
StorageReference ref = storage.getReference().child("ImagensExercicios/abdominal_1.bmp");
try {
      final File localFile = File.createTempFile("Images", "bmp");
      ref.getFile(localFile).addOnSuccessListener(new OnSuccessListener< FileDownloadTask.TaskSnapshot >() {
          @Override
          public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
              my_image = BitmapFactory.decodeFile(localFile.getAbsolutePath());
          }
      }).addOnFailureListener(new OnFailureListener() {
          @Override
          public void onFailure(@NonNull Exception e) {
              Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_LONG).show();
          }
      });
} catch (IOException e) {
      e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

还要注意的是,我在 AsyncTask 类中使用此代码来实现异步任务行为。