You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计Firebase中对应UserID下的UID数量?现有代码仅能统计红色标记项

问题原因

你当前的代码统计的是babylist/{userID}节点下的直接子节点数,也就是你提到的红色标记节点数量。如果要统计所有红色节点下嵌套的黑色UID节点总数,需要遍历每个直接子节点,累加其内部的子节点数量。

修正后代码

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 totalCount = 0;
        // 遍历所有红色标记的第一层子节点
        for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
            // 累加每个红色节点下的黑色UID节点数量
            totalCount += childSnapshot.getChildrenCount();
        }
        String userCounter = String.valueOf(totalCount);
        babycount.setText(userCounter);
        usercount.setText(userCounter);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.w(TAG, "数据读取失败:", databaseError.toException());
    }
});

补充说明

若单用户下的UID总数量超过int类型上限(约20亿),可将totalCount定义为long类型避免数值溢出。

内容的提问来源于stack exchange,提问作者Teej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:54:04