首页 文章

如何获取Firebase中父节点的嵌套节点数

提问于
浏览
1

我有一个应用程序,每次用户 SignUp 使用 Google Email Provider 并且用户在其生成的唯一Firebase随机ID下被推送到firebase数据库时,会在数据库中存储 user.getEmail . 如何在节点 Authenticated-Users 下基本 Random IDs 计算所有这些?
enter image description here

正如您在图像中看到的那样,我基本上有2个用户,我想要计算这些生成的ID,例如 2 .

UPDATED 如果这不可能,那么怎么知道什么时候所有数据都是 fully loaded ???

2 回答

  • 2

    使用以下代码:

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference yourRef = rootRef.child("Authenticated-Users");
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            long count = dataSnapshot.getChildrenCount();
            Log.d("TAG", count + "");
        }
    
        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    yourRef.addListenerForSingleValueEvent(eventListener);
    

    或者像这样迭代孩子:

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference yourRef = rootRef.child("Authenticated-Users");
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            int count = 0;
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                count = count + 1;
            }
            Log.d("TAG", count + "");
        }
    
        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    yourRef.addListenerForSingleValueEvent(eventListener);
    
  • 0

    您可以为给定的路径|位置获取子项,如:

    dBPathRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.i(dataSnapshot.getChildrenCount()+"Count");
    
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
    
            }
        });
    

相关问题