0

I used recyclerview, arraylist, and firebase to get and show data, but data is added to the list too many times..

This is my code

database=FirebaseDatabase.getInstance();
    mRef=database.getReference("SETS");

    mRef.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot==null) return;
            for(DataSnapshot userSanpshot : dataSnapshot.getChildren())
            {
                if(userSanpshot.child("DETAIL").getValue()==null) break;
               single.Detail=userSanpshot.child("DETAIL").getValue().toString();
                /~/
               list.add(single);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    adapter.setItems(list);

and this is my code when I send data to firebase

Button sharebut=(Button)findViewById(R.id.usersend);
    sharebut.setOnClickListener(
            new FloatingActionButton.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mDatabase.child("SETS").child(userId).child("DETAIL").setValue(detailText.getText().toString());
                    /~/
                    finish();
                }
            }
    );

}

1 Answers1

1

Try Using this method

mRef.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
    // do here your work
  }

  @Override
  public void onCancelled(DatabaseError databaseError) {
    // handle error here
  }
});
Pradeep Kumar
  • 586
  • 3
  • 19
  • I changed and I think the number of data is same as in firebase.. but data are all same(the latest data) – 이민지 Oct 27 '18 at 12:20