请如何从火力点查询中简单获取子女数量?例如,假设我使用一个包含10个子项的数据库查询,我如何获取该值,因为我尝试使用onChildChanged并从快照获取值,但效果不佳。这是因为起初它会得到数字,然后它会再次查询,因为它必须连续同步,但是因为在第二个查询中没有实际的子更改,所以它将返回一个值,如果为零,它将替换原始正确的值。 :/在Firebase中获取子女数量
databaseReference.child("PrinterView").child(uni).child(phone).orderByChild("done").equalTo("No").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Toast.makeText(getActivity(),"Number:"+String.valueOf(dataSnapshot.getChildrenCount()),Toast.LENGTH_LONG).show();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
两个不工作
databaseReference.child("PrinterView").child(uni).child(phone).orderByChild("done").equalTo("No").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Toast.makeText(getActivity(),"Number:"+String.valueOf(dataSnapshot.getChildrenCount()),Toast.LENGTH_LONG).show();
Vendor_view_Home_fragment.printIndicator.setText(String.valueOf(dataSnapshot.getChildrenCount()));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
请分享一些代码。 –
https://stackoverflow.com/a/37601712/5065318请参考此答案,并让我知道你是否有任何想法。基本上在孩子的内部改变你应该得到孩子的数量。 –
分享我们和你的数据库结构。 –