Firebase数据库输出按字母顺序排序问题

我有以下Firebase查询,可以查找我数据库中的所有系统(数据库称为Faults)并将它们放入表中。问题在于生成的表格按照我将这些项目添加到数据库的顺序,而不是按照字母顺序添加。任何想法,我已经错过了(搞砸了!)?Firebase数据库输出按字母顺序排序问题

var theroot = firebase.database().ref("Faults/"); 

theroot.orderByChild("system").on("value", Show_system_table, errData);

function Show_system_table(data) {

var raw_data = data.val();

var results_array = Object.values(raw_data);

for (i = 0; i < results_array.length; i++) {

var single_item = results_array[i];

var result_name = single_item.system;

var markup = "<tr> <td>" + result_name + "</td> </tr>";

$("#system_tbl").append(markup);

}

}

function errData() {

console.log("Error issues");

}

在此先感谢

彼得

PS - 我知道我应该把VAR的外循环(后面我会,答应!)

回答:

当您执行的查询Firebase数据库它会为每个小孩返回三条信息:

  1. 它的值。
  2. 它的关键。
  3. 它与其他子节点的相对顺序。

当你调用data.val()你的结果转换为普通JSON对象,不幸的是只有地方的前两项。所以物品的顺序在这个时候会丢失。

为了维持秩序,可使用内置Snapshot.forEach方法:

function Show_system_table(data) { 

data.forEach(function(snapshot) {

var single_item = snapshot.val();

var result_name = single_item.system;

var markup = "<tr> <td>" + result_name + "</td> </tr>";

$("#system_tbl").append(markup);

});

}

以上是 Firebase数据库输出按字母顺序排序问题 的全部内容, 来源链接: utcz.com/qa/266003.html

回到顶部