Firebase实时数据库搜索返回父级

时间:2018-06-29 19:50:55

标签: firebase-realtime-database

我已经创建了这样的数据,

device
    [random ID]
         id: "435345"
         token: "homer"
    [random ID]
         id: "594935"
         token: "marge"

我使用以下代码通过“令牌”找到“ id”。

const db = admin.database().ref("device");
db.orderByChild("token").equalTo(token).once("value",
    function(data){
        console.log("key= " + data.key + " ,value= " + data.val());
     }
)

如果token是“ marge”,我希望data.val()是“ 594935”。但是当我运行代码时,结果是这样的,

info: key= device ,value= [object Object]

我认为data不是“设备”的第二个子节点,而是“设备”节点本身。代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您必须执行循环才能访问列表的子级值

  

即使查询只有一个匹配项,快照仍然是列表;它只包含一个项目。要访问该项目,您需要遍历结果

您可以详细了解here

因此,您的代码应如下所示:

const db = admin.database().ref("device");
db.orderByChild("token").equalTo(token).once("value", function(data_snapshot) {

data_snapshot.forEach(function(data_child) {

console.log(data_child.val());

});

});