Как получить загруженные изображения из хранилища Firebase - PullRequest
0 голосов
/ 14 марта 2020

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

     //UsersAcivity class

      private RecyclerView recyclerView;
    private UploadAdapter uploadAdapter;

    private DatabaseReference dbReference;
    private List<UploadModel> uploads;
    FirebaseStorage firebaseStorage;
    StorageReference storageR;
    private ImageView imageView;
    FirebaseAuth firebaseAuth;
    FirebaseUser firebaseUser;
    FirebaseDatabase firebaseDatabase;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        overridePendingTransition(R.anim.slide_right, R.anim.slide_left);

        uploads = new ArrayList<>();

        mAdapter = new ImageAdapter(getApplicationContext(), uploads);


        recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(mAdapter);
        uploadAdapter.notifyDataSetChanged();



        dbReference = FirebaseDatabase.getInstance().getReference("Users");
        String userid = FirebaseAuth.getInstance().getCurrentUser().getUid();

        firebaseStorage = FirebaseStorage.getInstance();
        storageR = firebaseStorage.getReference();

        firebaseUser = firebaseAuth.getInstance().getCurrentUser();
        firebaseDatabase.getInstance().getReference();



        dbReference.orderByChild(userid).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for (DataSnapshot postsnapshot : dataSnapshot.getChildren()) {


                    UploadModel uploadModel = postsnapshot.getValue(Upload.class);
                    Uploads.add(uploadModel);



                }



                uploadAdapter.notifyDataSetChanged();




            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast.makeText(UsersActivity.this, databaseError.getMessage(), Toast.LENGTH_LONG).show();

            }
        });
    }


}



 //UploadModel class

     public class UploadModel {
    private String image;

    public UploadModel(){
        //Empty constructor needed
    }

    public UploadModel (String imageUrl){
        images=imageUrl;

    }

    public String getImageUrl() {
        return image;
    }

    public void setImageUrl(String image) {
        this.image = image;
    }
}

Класс загрузки адаптер

public class UploadAdapter extends RecyclerView.Adapter<UploadAdapter.ViewHolder>{

    private Context ctext;
    private List<Upload> list;

    public UploadAdapter(Context context,List<Upload> uploads){
        ctext = context;
        list = uploads;

    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View V = LayoutInflater.from(ctext).inflate(R.layout.cardview, parent, false);
        return new ViewHolder(V);


    }

    @Override
    public void onBindViewHolder(@NonNull ImageViewHolder holder, int position) {
        Upload uploadCurrent=list.get(position);
        Picasso.get().load(uploadCurrent.getImageUrl()).fit().centerCrop().into(holder.imageView);

    }

    @Override
    public int getItemCount() {
        return list.size();

    }

    public class ViewHolder extends RecyclerView.ViewHolder{
        public View view;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            imageView=itemView.findViewById(R.id.imageview);
        }
    }
}

Database Structure screenshot

1 Ответ

1 голос
/ 14 марта 2020

Вы не получаете никакого ответа от базы данных Firebase Realtime из-за указанного вами пути.

dbReference.child("LoqCOxqzhpN3puCWwhYDtHJVXqg2").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for (DataSnapshot postsnapshot : dataSnapshot.getChildren()) {
            String imageUrl= (String) postsnapshot.child("ImageUrl").getValue();
            Uploads.add(imageUrl);
        }
        uploadAdapter.notifyDataSetChanged();
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Toast.makeText(UsersActivity.this, databaseError.getMessage(), Toast.LENGTH_LONG).show();

    }
});

Ваш orderByChild() идентификатор для поиска в разделе "Пользователи".

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