我使用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的工作原理相同)。 –