請如何從火力點查詢中簡單獲取子女數量?例如,假設我使用一個包含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請參考此答案,並讓我知道你是否有任何想法。基本上在孩子的內部改變你應該得到孩子的數量。 –
分享我們和你的數據庫結構。 –