繁体   English   中英

Firebase获取数据太多次

[英]firebase gets data too many times

我使用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();
                }
            }
    );

}

尝试使用此方法

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM