【问题标题】:Firebase storage upload successful upload but upload size on Firebase console is 0BFirebase 存储上传成功上传但 Firebase 控制台上的上传大小为 0B
【发布时间】:2017-05-14 03:10:42
【问题描述】:

我在使用 Firebase 存储时遇到了一个奇怪的问题。最近,我能够完美地上传文件。但是现在,即使上传尚未完成,上传似乎也会触发 onSuccess。上传在控制台显示0B,文件扩展名为application/octet-stream。我正在上传我之前能够上传的同一张图片,并且我没有对我的代码进行更改。

这是我的代码

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == PICK_IMAGE) {
            if (data == null) {
                //Display an error
                return;
            }
            try {
                //UPLOAD IMAGE
                InputStream inputStream = getActivity().getContentResolver().openInputStream(data.getData());
                if(inputStream != null) {
                    img_upload_school_pic.setImageBitmap(BitmapFactory.decodeStream(new BufferedInputStream(inputStream)));
                    img_upload_school_pic.setVisibility(View.INVISIBLE);
                    //SHOW PROGRESSBAR
                    prg_upload.setVisibility(View.VISIBLE);
                    //UPLOAD IMAGE
                    ImageUploader uploader = new ImageUploader();
                    uploader.uploadSchoolDp(inputStream, "sample.jpg", img_upload_school_pic, prg_upload);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }

上传类的代码

public class ImageUploader {

    private StorageReference rootRef = FirebaseStorage.getInstance().getReference().getRoot();

    public void uploadSchoolDp(final InputStream inputStream, String key,
                               final ImageView img_upload_school_pic, final ProgressBar prg_upload) {

        StorageReference schools_dp_ref = rootRef.child("samplefoler");

        StorageReference img_df_ref = schools_dp_ref.child(key);

        UploadTask uploadTask = img_df_ref.putStream(inputStream);

        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                //HIDE PROGRESSBAR AND SHOW IMAGEVIEW
                img_upload_school_pic.setVisibility(View.VISIBLE);
                prg_upload.setVisibility(View.INVISIBLE);
            }
        });

        uploadTask.addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                e.printStackTrace();
            }
        });
//
//        uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
//            @Override
//            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
//                txt_progress.setText(taskSnapshot.getBytesTransferred() + " of " +
//                        taskSnapshot.getTotalByteCount());
//                Log.d(null, Double.toString(taskSnapshot.getTotalByteCount()));
//            }
//        });

    }
}

还有一件事。 taskSnapshot.getTotalByteCount() 返回 -1。我不能用它来显示上传的状态,所以我暂时把它注释掉。

【问题讨论】:

    标签: android firebase firebase-storage


    【解决方案1】:

    这些文件似乎没有在控制台上正确显示,但它们上传得很好,因为我可以使用生成的下载 url 查看图像。目前,我将忽略这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-18
      • 2018-02-10
      • 2018-09-22
      • 1970-01-01
      • 2018-12-21
      • 2021-06-28
      • 2023-04-04
      • 2020-10-05
      相关资源
      最近更新 更多