如何使用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())); }) }