如何在Firebase Realtime数据库中获取子键值

时间:2019-04-15 10:41:11

标签: javascript firebase firebase-realtime-database

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

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

我正在使用

snapshot.key

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

Database structure

1 个答案:

答案 0 :(得分:1)

根据您的评论,并不能100%清楚您要查找的内容。如果您知道在speechtext父节点下具有密钥recording的子节点具有密钥LRC2o....,则无需查询获取该子节点的密钥(因为您知道)。

另一方面,如果要迭代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]}`));

    }); 
  } 
});