我使用Firebase作爲數據庫。我想知道我該如何計算父親的孩子。我想要做的是,如果沒有兒童想要顯示文本視圖,但是如果父親下有孩子,我想顯示所有孩子的回收視圖。 每組保存在用戶標識下。在用戶標識下保存了用戶打開的所有組。 我已經嘗試了幾件事,但仍然沒有弄清楚如何做到這一點。 請看圖片鏈接,希望你能理解。Firebasedatabase - 如何計算子節點
編輯:
爲計數兒童
refCountMembers.getReference(Params.GROUP_LISTS).child(currentUser.getUid()).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
long count = snapshot.getChildrenCount();
if(snapshot.getChildrenCount() == 0) {
+"");
tvEmptyListGroup.setVisibility(View.VISIBLE);
break;
}else{
progressBar.setVisibility(View.INVISIBLE);
tvEmptyListGroup.setVisibility(View.INVISIBLE);
ref = FirebaseDatabase.getInstance().getReference(Params.GROUP_LISTS).child(currentUser.getUid());
GroupsAdapter adapter = new GroupsAdapter(ref,getParentFragment(),progressBar);
rvGroup.setAdapter(adapter);
rvGroup.setLayoutManager(new LinearLayoutManager(getContext()));
}
}
}
我childEventListener做到了監守我要確保當我刪除一個組,有0碼所以它會顯示textview或如果我將添加一個組它應該顯示recyclerView。 childEventListener啓動evey時間有一個變化,它的父母,對不對?
該解決方案將可能涉及['DataSnapshot.getChildrenCount()'](https://firebase.google.com/docs/reference/android/com/google/firebase/database/DataSnapshot.html#getChildrenCount ())。在沒有看到代碼獲取父節點的情況下,除此之外還有點難。 –
我加了我的代碼。好嗎? –
要檢測是否沒有孩子,您需要保留自己的計數器(在'onChildAdded'中遞增,在'onChildRemoved'中遞減],否則您需要在同一位置額外添加一個'ValueEventListener'。在後一種情況下,可以使用'snapshot.getChildrenCount()== 0'或'!snapshot.exists()'來檢測是否存在子節點。另請參閱我的答案在這裏:https://stackoverflow.com/questions/39900082/can-i-determine-if-query-does-not-find-any-children-with-values-within-a-specifi/39900316# 39900316(對於JavaScript,但Android SDK的工作原理相同)。 –