Android 使用putFile()或putBytes()在Firebase上上载图像?

Android 使用putFile()或putBytes()在Firebase上上载图像?,android,firebase,firebaseui,Android,Firebase,Firebaseui,我想在firebase上上传多个图像,我使用putFile()上传文件…但是,当我使用putFile时,它的上传图像直接来自本地系统,我无法在上传之前压缩图像…另一方面,如果我使用putBytes(),因为它需要将文件的全部内容同时保存在内存中,内存将耗尽…我需要做的是,有没有办法压缩图像文件并用putFile()而不是putBytes上传 谢谢 @Override public void onActivityResult(int requestCode, int resultCode, Int

我想在firebase上上传多个图像,我使用putFile()上传文件…但是,当我使用putFile时,它的上传图像直接来自本地系统,我无法在上传之前压缩图像…另一方面,如果我使用putBytes(),因为它需要将文件的全部内容同时保存在内存中,内存将耗尽…我需要做的是,有没有办法压缩图像文件并用putFile()而不是putBytes上传

谢谢

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode==1 && resultCode==RESULT_OK && data!=null) {
        Uri selectedImage = data.getData();
        slike.add(selectedImage);
        brojanjeSlika++;
        final ImageView imageview = new ImageView(UploaderActivity.this);
        LinearLayout.LayoutParams params = new LinearLayout
                .LayoutParams(120,120);
        params.setMargins(2,2,2,2);


        params.weight=1;

        imageview.setLayoutParams(params);


        mLinearLayout.setPadding(5,5,5,5);

        mLinearLayout.addView(imageview);
        Picasso.with(imageview.getContext())
                .load(selectedImage)
                .resize(120,120)
                .centerCrop()
                .into(imageview);

您可以将本地文件压缩到另一个本地文件中,然后上载第二个文件。但据我所知,大多数图像处理库都会在内存中加载整个图像以调整其大小,因此我认为这种方法不会给您带来太多好处。您能告诉我在firebase上上载多个图像的最正确方法是什么吗?用一句话。。。谢谢