Javascript 如何恢复基于从Firebase获得的数字生成的列表的顺序?
我在Firebase中有一个从1到X的数字列表,因为它经常增加。。。列表生成时没有问题,但向下生成,即: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
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()方法保持不同节点的同步,请参见