簡體   English   中英

FireBaseatabase-如何計算子節點

[英]Firebasedatabase - how to count child node

我正在使用Firebase作為數據庫。 我想知道如何計算父親的孩子。 我想做的是,如果沒有孩子,我想顯示文本視圖,但是如果在父親下面有孩子,我想顯示所有孩子的回收視圖。 每個組保存在用戶ID下。 在用戶ID下保存了用戶已打開的所有組。 我已經嘗試了幾件事,但是仍然沒有弄清楚該怎么做。 請看圖片鏈接,希望您理解。

FirebaseDatabse組節點

編輯:

計數兒童的代碼

  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激發了通知時間,父項發生了變化,對吧?

創建一個模型類作為您的組信息。

public class Group {
    private String groupName;
    private String groupUID;
    private String ownerGroupUID;

    // Getters and setters
}

現在,將所有組保存在用戶ID下。

    final List<Group> groupList = new ArrayList<>(); // list of groups
    FirebaseDatabase.getInstance()
            .getReference()
            .child("GroupLists")
            .child("dS...") // this is the id of user - over whose groups you want to iterate
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                        Group group = snapshot.getValue(Group.class); // this is a group
                        groupList.add(group); // add to list
                    }

                    if (groupList.size()>0){
                        // Now display all groups in recycler view..

                    } else {
                        // Now display in textview that group list is empty

                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM