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

如何获取Firebase实时数据库usernames节点的子节点名称列表?

获取Firebase实时数据库子节点名称列表的方法

你当前代码里snapshot.val()返回的是包含子节点键值对的对象,直接alert对象自然会显示[object Object]。要拿到仅包含子节点名称的列表,有两种简单方法:

方法1:使用Object.keys()

直接提取返回对象的键名数组,代码修改如下:

const starCountRef = ref(database, 'usernames/');
onValue(starCountRef, (snapshot) => {
  const data = snapshot.val();
  if (data) { // 先判断节点是否存在,避免空值报错
    const usernameList = Object.keys(data);
    alert(usernameList); // 此时会显示类似["steve", ...]的数组
  } else {
    alert("没有找到用户名节点");
  }
});

方法2:使用Firebase快照的forEach()遍历

如果需要更严谨地处理节点(比如节点有未公开的元数据时),可以遍历快照的子节点来收集名称:

const starCountRef = ref(database, 'usernames/');
onValue(starCountRef, (snapshot) => {
  const usernameList = [];
  snapshot.forEach(childSnapshot => {
    usernameList.push(childSnapshot.key); // 每个子节点的key就是你要的名称
  });
  alert(usernameList);
});

两种方法都能得到你想要的[steve, ...]格式的子节点名称列表,不会包含子节点的子项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:22:50