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