How to prevent redundancy of keys that are in Firebase database when I retrieve them random?

This is my randomly retrieving data codes:

            mDataSelect.addValueEventListener(new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    List<String> lst = new ArrayList<String>();

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

                        Collections.shuffle(lst);
                        lst.add(String.valueOf(ds.getKey()));

                        randomGenerator = new Random();
                        int index = randomGenerator.nextInt(lst.size());
                        String item = lst.get(index);
                        idofcaps.setText(item);

                        final DatabaseReference capsSelect = mDataSelect.child(item);

                        capsSelect.addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dss) {

                                String post_Image = (String) dss.child("Image").getValue();
                                Picasso.with(StartCapsActivity.this).load(post_Image).into(caps);
                                String post_name = (String) dss.child("Translation").getValue();
                                translation.setText(post_name);


                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });

                    }}

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

        }
    });

I have a next button in my screen which has the same code for retrieve another image from database. However, I don't want to retrieve same image again. How can I prevent this redundancy?

Upvotes: 1

Views: 470

Answers (1)

elbert rivas
elbert rivas

Reputation: 1464

Create an arraylist then add the retrieved key. Then remove possible duplicate keys. How do I remove repeated elements from ArrayList?

Upvotes: 3

Related Questions