Изображения firebase не отображаются в RecycleView

#android #firebase

#Android #firebase

Вопрос:

введите описание изображения здесь

На приведенных выше изображениях последний не отображается в режиме рециркуляции, в чем причина. Мой основной код действия приведен ниже, и вы можете проверить, что с этим не так. Все первые изображения загружаются приложением IOS и отображаются в режиме рециркуляции. Но когда я загружаю изображения со своего телефона, они не отображаются в recyclceView.

     personPicture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent chooseProfilePictureFromGallery = new Intent(Intent.ACTION_GET_CONTENT);
            chooseProfilePictureFromGallery.setType("image/*");
            if (chooseProfilePictureFromGallery.resolveActivity(getApplicationContext().getPackageManager()) != null) {
                startActivityForResult(Intent.createChooser(chooseProfilePictureFromGallery, "Select Picture"), PICK_IMAGE);
            }
        }
    });
    UButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                if(checkValidity()==true)
                {
                    detailInfoUpload();
                }



        }
    });
}

private boolean checkValidity() {
    String name = pName.getText().toString();
    String age = pAge.getText().toString().trim();
    String contactNumber = pNumber.getText().toString().trim();
    String address = pFullAddress.getText().toString();
    if(name.isEmpty())
    {
        Toast.makeText(getApplicationContext(),"Please give a name",Toast.LENGTH_SHORT).show();
        return false;
    }
    else if(age.isEmpty())
    {
        Toast.makeText(getApplicationContext(),"Please give proper age",Toast.LENGTH_SHORT).show();
        return false;
    }
    else if(contactNumber.isEmpty() || contactNumber.length()<11)
    {
        Toast.makeText(getApplicationContext(),"Please give contact number",Toast.LENGTH_SHORT).show();
        return false;
    }
    else if(address.isEmpty())
    {
        Toast.makeText(getApplicationContext(),"Please give a name",Toast.LENGTH_SHORT).show();
        return false;
    }

    return true;
}


private void showToast() {
    Toast.makeText(getApplicationContext(), "Information Uploaded Successfully ", Toast.LENGTH_SHORT).show();
}

private void detailInfoUpload() {
    if (FilePathUri != null) {
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Uploading");
        progressDialog.show();
        String uName = pName.getText().toString().trim();
        String uAge = pAge.getText().toString();
        String uBelong = pBelong.getText().toString().trim();
        String uDC = pDisappearedCity.getText().toString().trim();
        String uDD = pDisappearedDate.getText().toString().trim();
        String uAdd = pFullAddress.getText().toString();
        String uPh = pNumber.getText().toString().trim();
        String uId = firebaseAuth.getInstance().getCurrentUser().getUid();
       databaseReference = FirebaseDatabase.getInstance().getReference();
       String postid = databaseReference.child("missing_requests").push().getKey();
        StorageReference storageReference2 = storageReference.child(postid  "."   GetFileExtension(FilePathUri));
        storageReference2.putFile(FilePathUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        Handler handler = new Handler();
                        handler.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                progressDialog.setProgress(0);
                            }
                        }, 500);
                        PostMissingModel postMissingModel = new PostMissingModel(uAdd,uAge, uBelong,
                                uDD,uDC,genderT,taskSnapshot.getUploadSessionUri().toString(),postid,uName,statusT,uPh,uId);
                        //String ImageUploadId = databaseReference.push().getKey();
                        Log.d("mes","we are in just above uploading method");
                        databaseReference.child("missing_requests").push().setValue(postMissingModel);
                        showToast();
                        finish();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        progressDialog.dismiss();
                        Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).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();
                        progressDialog.setMessage("Uploaded "   ((int) progress)   "%...");
                    }
                });

    }
    else {

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_IMAGE amp;amp; resultCode == RESULT_OK amp;amp; data != null amp;amp; data.getData() != null) {

        FilePathUri = data.getData();

        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePathUri);
            personPicture.setImageBitmap(bitmap);
        } catch (IOException e) {

            e.printStackTrace();
        }

    }
}
public String GetFileExtension(Uri uri) {

    ContentResolver contentResolver = getContentResolver();
    MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
    return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri)) ;

}
  

}

Комментарии:

1. пожалуйста, поделитесь своим кодом.

2. Возможно, ваш тип файла не тот. проверьте, куда вы загружаете, тип файла должен быть в точном формате.

3. Общий, пожалуйста, проверьте это

Ответ №1:

используйте его изображение в формате jpeg, чтобы использовать библиотеку Picasso. Ссылка

получите зависимость от этого URL-адреса, добавьте его в свой файл Gradle и используйте этот код:

 Picasso.get().load("YOUR IMAGE URL HERE").into(imageView);
  

если это не сработает, не могли бы вы поделиться с нами кодом?

Комментарии:

1. Я проверил это. При загрузке проблем нет. Изображение успешно загружается, но не извлекается

2. чтобы получить изображение из firebase, сначала сохраните его URL-адрес в базе данных realtimedatabase, а затем получите этот URL-адрес из firebse с помощью кода и 3-го пользователя Picaso, чтобы установить изображение в ImageView для RecycleView

3. я просто хочу посмотреть код, как вы устанавливаете их в режим рециркуляции

4. Все изображения извлекаются в режиме рециркуляции, единственное последнее, которое я загрузил, не отображается. Я думаю, что с представлением recycle все в порядке, потому что в представлении recycle отображаются первые 8 изображений, которые загружены другим пользователем с помощью приложения IOS

5. После 3 часов непрерывной работы проблема решена