Javascript 如何恢复基于从Firebase获得的数字生成的列表的顺序?

Javascript 如何恢复基于从Firebase获得的数字生成的列表的顺序?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我在Firebase中有一个从1到X的数字列表,因为它经常增加。。。列表生成时没有问题,但向下生成,即: 1 2 3 4 5 ... ... 5 4 3 2 1 我需要的是以这种方式生成: 1 2 3 4 5 ... ... 5 4 3 2 1 我尝试过在任何地方添加反转,但都不起作用 这是我正在使用的代码: var content = ''; firebase.database().ref().child("Users").on('value', functio

我在Firebase中有一个从1到X的数字列表,因为它经常增加。。。列表生成时没有问题,但向下生成,即:

1
2
3
4
5
...
...
5
4
3
2
1
我需要的是以这种方式生成:

1
2
3
4
5
...
...
5
4
3
2
1
我尝试过在任何地方添加反转,但都不起作用

这是我正在使用的代码:

var content = '';  
          firebase.database().ref().child("Users").on('value', function(snapshot){
          if(snapshot.exists()){
            //console.log(snapshot.key)
            content ='<ul>';  
            snapshot.forEach(function(data){
                var val = data.val();

                content += '<li>' + val.Usuario + '</li>';

            });
            content +='</ul>';

            $("#A_Usuarios")append(content);
            }
            });
var内容=”;
firebase.database().ref().child(“用户”).on('value',函数(快照){
if(snapshot.exists()){
//console.log(snapshot.key)
内容=“
    ”; snapshot.forEach(函数(数据){ var val=data.val(); content+='
  • '+val.Usuario+'
  • '; }); 内容+='
'; $(“A#u Usuarios”)附加(内容); } });
这是数据库的结构

我希望你能帮助我,非常感谢

尝试添加
.sort((a,b)=>b.Usuario-a.Usuario)
如下:

var content = '';
firebase.database().ref().child("Users").on('value', function (snapshot) {
    if (snapshot.exists()) {
        //console.log(snapshot.key)
        content = '<ul>';
        snapshot
            .sort((a, b) => b.Usuario-a.Usuario)
            .forEach(function (data) {
                var val = data.val();

                content += '<li>' + val.Usuario + '</li>';

            });
        content += '</ul>';

        $("#A_Usuarios").append(content);
    }
});
var内容=”;
firebase.database().ref().child(“用户”).on('value',函数(快照){
if(snapshot.exists()){
//console.log(snapshot.key)
内容=“
    ”; 快照 .sort((a,b)=>b.Usuario-a.Usuario) .forEach(函数(数据){ var val=data.val(); content+='
  • '+val.Usuario+'
  • '; }); 内容+='
'; $(“#A#u Usuarios”)。追加(内容); } });
通常最好让数据库对记录进行排序,而不是在前端完成此任务

对于您的案例,一种常见的方法是将
Usario
字段值的倒数存储在一个额外的
usarioiv
字段中,并使用如下方法:

var content = '';
firebase.database().ref().child("Users").orderByChild("UsarioInv").on('value', function(snapshot) {
    if (snapshot.exists()) {
        //console.log(snapshot.key)
        content = '<ul>';
        snapshot.forEach(function(data) {
            var val = data.val();

            content += '<li>' + val.Usuario + '</li>';

        });
        content += '</ul>';

        $("#A_Usuarios") append(content);
    }
});
var内容=”;
firebase.database().ref().child(“用户”).orderByChild(“usarioiv”).on('value',函数(快照){
if(snapshot.exists()){
//console.log(snapshot.key)
内容=“
    ”; snapshot.forEach(函数(数据){ var val=data.val(); content+='
  • '+val.Usuario+'
  • '; }); 内容+='
'; $(“A#u Usuarios”)附加(内容); } });
您不能
.reverse()
对象。数据结构是什么?不仅仅是值?作为旁注,使用非英语变量名几乎总是一个非常糟糕的主意。添加数据库结构会生成此错误“snapshot.sort不是函数”这是一个好主意,但目标不是生成更多值,在NoSQL数据库中,仅恢复已经存在的数据的顺序或颠倒列表的顺序复制数据(或保存与倒数值略有不同的额外数据)是非常常见的。通常,使用update()方法保持不同节点的同步,请参见