Firebase获取数据太多次

时间:2018-10-26 03:23:16

标签: android firebase

我使用了recyclerview,arraylist和firebase来获取和显示数据,但是数据被多次添加到列表中。

这是我的代码

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

这是我向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 个答案:

答案 0 :(得分:1)

尝试使用此方法

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

  @Override
  public void onCancelled(DatabaseError databaseError) {
    // handle error here
  }
});