Загрузка изображения в Firebase из фрагмента onActivityResult всегда возвращает ноль для photoUrl - PullRequest
0 голосов
/ 27 марта 2020
 if (adClass.getPhotoUrl() == null && id.equals(adClass.getuserId())){
            Picasso.get().load("https://www.colorcombos.com/images/colors/8C8984.png").into(resdncePhoto);
            addphoto.setVisibility(View.VISIBLE);

            addphoto.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                    intent.setType("image/*");
                    intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
                    startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PHOTO_PICKER);

                    final DatabaseReference update = mFirebasedatabase.getReference().child("residenceAds").child(String.valueOf(uniID)).child(listId).child("userName");
                    update.setValue(photoUrl);
                }
            });
        }

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    if (requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK){
        Uri selectedImageUri = data.getData();
        StorageReference photoRef = mStorageRefernece.child(selectedImageUri.getLastPathSegment());
        photoRef.putFile(selectedImageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Task<Uri> urlTask = taskSnapshot.getStorage().getDownloadUrl();
                while (!urlTask.isSuccessful());
                Uri downloadUrl = urlTask.getResult();
                photoUrl = downloadUrl.toString();
                progressDialog.dismiss();
                Toast.makeText(getContext(),"تم التحميل......",Toast.LENGTH_SHORT).show();
            }
        }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @Override
            public void onProgress(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
                double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot.getTotalByteCount());
                progressDialog.setMessage("تم تحميل  " + ((int) progress) + "%...");
                progressDialog.show();

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                progressDialog.dismiss();
            }
        });
    }
}
...