Не удается разрешить символ - сжатие растрового изображения и загрузка в Firebase - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь выбрать изображение, сжать его, а затем загрузить его в хранилище Firebase.Я пытаюсь следующий код, но получаю сообщение об ошибке Cannot resolve symbol 'data2'.

Это мое занятие:

private void openFileChooserOne() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(intent, PICK_IMAGE_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK &&
        data != null && data.getData() != null) {
        mImageUri = data.getData();
        Picasso.get().load(mImageUri).into(mImageView);
    }
}

private void uploadFile() {
    FirebaseUser user = mAuth.getCurrentUser();
    String userID = user.getUid();
    if (mImageUri != null && mImageMedicalUri != null) {
        StorageReference fileReference = mStorageRef.child(userID).child("image.jpg");
        try {
            Bitmap bmp = MediaStore.Images.Media.getBitmap(getContentResolver(), mImageUri);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.JPEG, 25, baos);
            byte[] data2 = baos.toByteArray();
        } catch (IOException ioEx) {
            ioEx.printStackTrace()
        }
        mUploadTask = fileReference.putBytes(data2) //Getting error here
            .addOnSuccessListener(new OnSuccessListener < UploadTask.TaskSnapshot > () {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        //
                    });
            }
    })
}

Я новичок в Java и пытаюсь понять проблему.Буду очень признателен за вашу помощь, чтобы узнать, что я здесь делаю неправильно.

1 Ответ

0 голосов
/ 17 сентября 2018

Когда вы используете следующую строку кода:

mUploadTask = fileReference.putBytes(data2)

Ваша переменная data2 находится вне области, в которой она была объявлена.Чтобы решить эту проблему, вы должны либо переместить эту строку в блок try-catch, либо сделать переменную data2 глобальной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...