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数据库它会为每个小孩返回三条信息:
- 它的值。
- 它的关键。
- 它与其他子节点的相对顺序。
当你调用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








