当我随机检索它们时,如何防止Firebase数据库中的密钥冗余?

时间:2017-01-22 16:07:36

标签: android firebase firebase-realtime-database firebase-storage

这是我随机检索的数据代码:

            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) {

                }
            });

        }
    });

我的屏幕上有一个下一个按钮,它具有相同的代码,用于从数据库中检索另一个图像。但是,我不想再次检索相同的图像。如何防止这种冗余?

1 个答案:

答案 0 :(得分:2)

创建一个arraylist然后添加检索到的密钥。然后删除可能的重复键。 How do I remove repeated elements from ArrayList?