如何在不使用forEach的情况下从equalTo(唯一)查询访问单个子节点

时间:2016-07-27 17:33:46

标签: firebase firebase-realtime-database

我需要从查询中访问结果对象(key:value)。这是我的疑问:

Error loading Terraform: Error downloading modules: module foo: Error loading .terraform/modules/af13a92c4edda294822b341862422ba5/main.tf: Error reading config for aws_ecs_service[${var.name}]: parse error: syntax error

我要查询的数据是这种形式:

root_ref.child('List_Groups').orderByValue().equalTo(group_name).once('value')
.then(function(snapshot){...

查询的目的是查找与List_Groups uniqueKey: value, uniquekey: value, ... 参数(equalTo)关联的唯一键。我打算使用group_name来获取单个结果,因为orderByValue().equalTo()是唯一的。但是,它返回的快照的格式为:

group_name

因此List_Groups uniqueKey: group_name 返回snapshot.keyList_Groups返回snapshot.val()[object Object]中的关键是我需要访问的内容。

我使用[object Object]来获取密钥,但forEach似乎没有必要用于此任务。还有另外一种方法吗?

forEach是理想的,但是这显然不起作用,因为snapshot.child().key需要子路径作为参数。此外,由于我正在寻找密钥,我不知道密钥,因此不能只是child()

编辑: 这是snapshot.val()[key]

的结果

console.log(JSON.stringify(snapshot.val()))

1 个答案:

答案 0 :(得分:0)

使用此:

var theKey = Object.keys(snapshot.val())[0];

Object.keys()返回对象中所有键的数组,在您的情况下,只会有一个键,因此[0]将获得第一个键(仅限)。

CodePen:http://codepen.io/theblindprophet/pen/GqGQaJ