Android 增值时如何控制firebase中的重复数据?

Android 增值时如何控制firebase中的重复数据?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我构建了两个聊天应用程序,一个用于用户,另一个用于管理员使用Firebase添加群组。当我从用户端添加组时,它会在用户端显示重复的组。如何检查何时添加数据并仅选择上次添加的组?有没有办法只添加最新的组?下面是我的代码: private DatabaseReference mDatabaseRef; private List<ImageUpload> imgList; private List<groupuserstoken> imgList1;

我构建了两个聊天应用程序,一个用于用户,另一个用于管理员使用Firebase添加群组。当我从用户端添加组时,它会在用户端显示重复的组。如何检查何时添加数据并仅选择上次添加的组?有没有办法只添加最新的组?下面是我的代码:

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

    }
}
私有数据库引用mDatabaseRef;
私人名单;
私有列表imgList1;
私有列表imgList11;
回收视图列表视图;
图像列表适配器;
数据库参考文献;
int c=1;
私有数据库参考数据库参考;
进行对话进行对话;
ArrayList名称、描述、图像、成员、检查、主题、上载ID、用户;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u所有组);
listView=(RecyclerView)findViewById(R.id.allgroups11);
mDatabaseRef=FirebaseDatabase.getInstance().getReference();
imgList=newarraylist();
name=新的ArrayList();
description=新建ArrayList();
members=newarraylist();
users=newarraylist();
image=newarraylist();
check=newarraylist();
topic=newarraylist();
uploadid=newArrayList();
imgList11=新的ArrayList();
ref=FirebaseDatabase.getInstance().getReference();
最终查询Query=mDatabaseRef.child(“组”);
addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot快照:DataSnapshot.getChildren()){
ImageUpload img=snapshot.getValue(ImageUpload.class);
imgList.add(img);
}
对于(int i=0;i
您所要做的就是清除列表并尝试此尝试


对于单次调用,请使用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);
                }
for(DataSnapshot快照:DataSnapshot.getChildren()){
如果(imgList.size()>0){
imgList.clear();
}
ImageUpload img=snapshot.getValue(ImageUpload.class);
imgList.add(img);
}
name.clear();
description.clear();
image.clear();
成员。清除();
topic.clear();
uploadid.clear();
对于(int i=0;i
dude firebase me one he data save hota ha lekin ye arraylist me dubara se le ata在firebase中拥有10万个群组。它一次又一次地加载10万个组??添加Listener for SingleValueEvent phr yah use kro..sirf一次呼叫k liay。!或最新的数据k liay id k通过呼叫kr lo scroll py。?
  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);
                }