Firebase数据检索:我无法从Firebase数据库中创build的json检索数据

这是我的数据库结构

{ "main" : { "fake data1" : { "abc" : "1001", "high" : "100", "low" : "150", "mid" : "200", "name" : "fake data1" }, "fake data2" : { "abc" : "1023", "high" : "1020", "low" : "1020", "mid" : "1501", "name" : "fake data2" }, "fake data3" : { "abc" : "1001", "high" : "100", "low" : "150", "mid" : "200", "name" : "fake data3" }, "fake data4" : { "abc" : "1023", "high" : "1020", "low" : "1020", "mid" : "1501", "name" : "fake data4" }, "fake data5" : { "abc" : "1001", "high" : "100", "low" : "150", "mid" : "200", "name" : "fake data5" }, "fake data6" : { "abc" : "1023", "high" : "1020", "low" : "1020", "mid" : "1501", "name" : "fake data6" } } } 

我想从上面检索所有的名字,但我无法做到这一点。

我正在尝试使用以下查询:

  var datafire = firebase.database().ref(); var namedb = datafire.child('main') var query = namedb.orderByChild('name') query.on("value", function(datasnap) { var data = (datasnap.val()); console.log(data.name); 

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

您的代码将需要通过使用Snapshot.forEach()循环这些项目来处理快照包含多个项目的事实:

 var datafire =firebase.database().ref(); var namedb = datafire.child('main') var query = namedb.orderByChild('name') query.on("value",function(datasnap){ datasnap.forEach(function(child) { var data=child.val(); console.log(child.key, data.name); }); });