如何使用Node js从JSON formate中的firebase数据库中检索所需的JSON对象

我新来Node js和firebase。 我试图获取存储在我的firebase数据库中的JSON数据取决于一些search条件。

在以下示例中:

看到这个图像

variableschildname是我们必须search其值的关键(col1),而findvalue是该键的值(col1的值为)

为此,我尝试了以下代码:

function searchKeyValue(headNode,childname,findvalue) { var ref = firebase.database().ref("data/"+headnode); ref.orderByKey().on("child_added", function(snapshot) { //extracting Query ref.orderByChild(childname).equalTo(findvalue).on("value",function (snapshot) { console.log(snapshot.val()); });//end of Query });//end oder by key }// end of function 

 function searchKeyValue(headnode,childname,findvalue) { var ref = firebase.database().ref("data"); nextref=ref.child(headnode); nextref.orderByChild(childname).equalTo(findvalue).on("value",function (snapshot) { console.log(JSON.stringify(snapshot.val())); }) } 

但都没有提供我所需的输出:OUTPUT DESIRED是:

 {1:"152",2:"233.69",3:"-191.7",4:"133.69",5:"-199.769",6:"AMUKH",7:"4",{"port":4},8:"NTP",9:{"Dup":12345}]} 

但是得到:

 {"-KOZ2Md3NZ_vWddAIBj3":[null,"152","233.69","-191.7","133.69","-199.769","AMUKH","4",{"port":4},"NTP",{"Dup":12345}]} 

[注意:我错过了我保存的数据的所有键我只获得该键的值…]

当您针对Firebase数据库执行查询时,可能会有多个结果。 所以快照包含了这些结果的列表。 即使只有一个结果,快照也将包含一个结果列表。

我无法弄清楚你的第一个片段应该做什么。 但是第二个片段可以用于:

 function searchKeyValue(headnode,childname,findvalue) { var ref = firebase.database().ref("data"); nextref=ref.child(headnode); nextref.orderByChild(childname).equalTo(findvalue).on("value",function (snapshot) { snapshot.forEach(function(childSnapshot) { console.log(JSON.stringify(childSnapshot.val())); }); }) } 

或者,你可以听child_added ,每个孩子个别火灾:

 function searchKeyValue(headnode,childname,findvalue) { var ref = firebase.database().ref("data"); nextref=ref.child(headnode); nextref.orderByChild(childname).equalTo(findvalue).on("child_added",function (childSnapshot) { console.log(JSON.stringify(childSnapshot.val())); }) }