它只計算紅色標記,我需要的是黑色標記。
圖片鏈接
如何檢索資料?
String userID = FirebaseAuth.getInstance().getUid();
public static final String TAG = "TAG";
DatabaseReference db = FirebaseDatabase.getInstance().getReference().child("babylist").child(userID);
db.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int counter = (int) dataSnapshot.getChildrenCount();
String userCounter = String.valueOf(counter);
babycount.setText(userCounter);
usercount.setText(userCounter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
uj5u.com熱心網友回復:
它只計算紅色標記,我需要的是黑色標記
這是預期的行為,因為您只回圈遍歷資料一次。呼叫.child(userID)將始終統計用戶 ID 節點下的子節點數。要計算所有用戶的所有孩子,您需要添加一個嵌套回圈,如以下代碼行:
DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference babylistRef = db.child("babylist");
babylistRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
int userCounter = 0;
for (DataSnapshot userSnapshot : task.getResult().getChildren()) {
for (DataSnapshot snapshot : userSnapshot.getChildren()) {
userCounter ;
}
}
babycount.setText(userCounter);
usercount.setText(userCounter);
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371386.html
下一篇:顯示未定義的值
