Mobeen Javed
Mobeen Javed

Reputation: 13

How to control duplicate data in firebase when value added?

I built two chat apps, one for user and one side for admin to add groups using Firebase. When I add group from user side, it shows duplicate groups on user side. How to check when data add and select only last group I add? Is there any way to add only latest group? Below is my code:

 private DatabaseReference mDatabaseRef;
    private List<ImageUpload> imgList;
    private List<groupuserstoken> imgList1;
    private List<groupuserstoken> imgList11;
    RecyclerView listView;
    ImageListAdapter adapter;
    DatabaseReference ref;
    int c=1;
    private DatabaseReference databaseReference;
    ProgressDialog progressDialog;
    ArrayList<String> name,description,image,members,check,topic,uploadid,users;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_allgroups);
        listView=(RecyclerView) findViewById(R.id.allgroups11);
        mDatabaseRef = FirebaseDatabase.getInstance().getReference();
        imgList=new ArrayList<>();
        name=new ArrayList<>();
        description=new ArrayList<>();
        members=new ArrayList<>();
        users=new ArrayList<>();
        image=new ArrayList<>();
        check=new ArrayList<>();
        topic=new ArrayList<>();
        uploadid=new ArrayList<>();
        imgList11=new ArrayList<>();
        ref=FirebaseDatabase.getInstance().getReference();
        final Query query = mDatabaseRef.child("Groups");
        query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    ImageUpload img = snapshot.getValue(ImageUpload.class);
                    imgList.add(img);
                }
                for (int i = 0; i < imgList.size(); i++) {
                    name.add(imgList.get(i).getName());
                    description.add(imgList.get(i).getDescription());
                    image.add(imgList.get(i).getUrl());
                    members.add(imgList.get(i).getMembers());
                    topic.add(imgList.get(i).getTopic());
                    uploadid.add(imgList.get(i).uploadId);
                }

                listView.setLayoutManager(new LinearLayoutManager(Allgroups.this));
                adapter = new ImageListAdapter(Allgroups.this, name, description, image, members,  topic, uploadid);
                listView.setItemAnimator(new DefaultItemAnimator());
                listView.setAdapter(adapter);
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
    @Override
    public void onItemClick(View view, int position) {

    }
}

Upvotes: 0

Views: 618

Answers (1)

Atif AbbAsi
Atif AbbAsi

Reputation: 6035

all you have to do is clear list and try this Firebase Tutorial try Firebase Helper Class.!

query.addListenerForSingleValueEvent(new ValueEventListener() 

for single time call use addListenerForSingleValueEvent

  for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                  if(imgList.size()>0){
    imgList.clear();
                  }

                    ImageUpload img = snapshot.getValue(ImageUpload.class);
                    imgList.add(img);
                }
                   name.clear();
                    description.clear();
                    image.clear();
                    members.clear();
                    topic.clear();
                    uploadid.clear();
                 for (int i = 0; i < imgList.size(); i++) {
                    name.add(imgList.get(i).getName());
                    description.add(imgList.get(i).getDescription());
                    image.add(imgList.get(i).getUrl());
                    members.add(imgList.get(i).getMembers());
                    topic.add(imgList.get(i).getTopic());
                    uploadid.add(imgList.get(i).uploadId);
                }

Upvotes: 1

Related Questions