Не могу обновить ImageView через Firebase Storage - PullRequest
0 голосов
/ 01 сентября 2018

Я не могу обновить свой imageView, код запускается, и ошибка не отображается, но изображение не загружается в хранилище firebase

private ImageView profilepic_edit, contactinfo_edit, detailedinfo_edit;
private FirebaseAuth firebaseAuth;
private FirebaseDatabase firebaseDatabase;
private FirebaseStorage firebaseStorage;
Uri imagePath;
private static int PICK_IMAGE = 123;
private StorageReference storageReference;
Boolean imgupload = false;

У меня есть

boolean imgupload = false;

установлен в false, и он станет истинным, когда пользователь коснется просмотра изображения, потому что я хочу, чтобы изображение загружалось в хранилище в фоновом режиме вот мой результат деятельности

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

    if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && data.getData() != null) {
        imagePath = data.getData();
        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContext().getContentResolver(), imagePath);
            profilepic_edit.setImageBitmap(bitmap);
            imgupload = true;

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    super.onActivityResult(requestCode, resultCode, data);
}

Вот слушатель, когда пользователь касается изображения, это происходит

StorageReference storageReference = firebaseStorage.getReference();
profilepic_edit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Image"), PICK_IMAGE);
        }
    });
    if (imgupload.equals(true)) {
        updateUserData();
    }

вот мой метод обновления пользовательских данных

private void updateUserData() {
    StorageReference imageReference = storageReference.child(firebaseAuth.getUid()).child("Images").child("profile pic");
    UploadTask uploadTask = imageReference.putFile(imagePath);
    uploadTask.addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(getContext(), "Upload failed!", Toast.LENGTH_SHORT).show();
        }
    }).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
            Toast.makeText(getContext(), "Upload successful!", Toast.LENGTH_SHORT).show();
        }
    }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
            //displaying the upload progress
            double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
            Toast.makeText(getContext(), "Uploaded " + ((int) progress) + "%...", Toast.LENGTH_LONG);

        }
    });

Ни тост не показывает, который я специально добавил, чтобы проверить, был ли размер изображения слишком большим и медленно загружался, ни изображение, загружаемое в хранилище Firebase. я не знаю, где я не прав

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