首页 > 解决方案 > 如何在 Firebase 实时数据库中获取子键值

问题描述

我是 Firebase 的新手,目前正在使用 JavaScript SDK 将我的 Web 应用程序与 Firebase 集成。

我的问题是:如何在我在图像上绘制的红色框中获得价值?

我在用

snapshot.key

访问密钥值,但它会将生成的密钥(蓝色框)返回给我,这不是我想要的。

数据库结构

标签: javascriptfirebasefirebase-realtime-database

解决方案


根据您的评论,您在寻找什么并不是 100% 清楚。如果您知道您在具有键的父节点speechtext下有一个带有键的子节点,则无需查询获取该子节点的键(因为您知道)。recordingLRC2o....

另一方面,如果您想迭代节点的子节点的所有键recording,请执行以下操作(基于您的代码):

var dbRecording = firebase.database().ref("recordings/"); 
dbRecording.once("value", function(snapshot2) { 
  if (snapshot2.exists()) { 
    snapshot2.forEach(function(value) { 
      var childObject = value.val(); 

      Object.keys(childObject).forEach(e => console.log(`key = ${e}`));

    }); 
  } 
});

如果您需要键和值,请执行以下操作:

var dbRecording = firebase.database().ref("recordings/"); 
dbRecording.once("value", function(snapshot2) { 
  if (snapshot2.exists()) { 
    snapshot2.forEach(function(value) { 
      var childObject = value.val(); 

      Object.keys(childObject).forEach(e => console.log(`key = ${e}  value = ${childObject[e]}`));

    }); 
  } 
}); 

推荐阅读