Reputation: 13
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
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