Как я могу изменить порядок списка, который я генерирую, основываясь на числах, которые я получаю от Firebase? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть список чисел в Firebase, который идет от 1 до X, так как он увеличивается очень часто ... Список генерируется без проблем, но он генерируется вниз, то есть таким образом:

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);
            }
            });

Это структура БД

enter image description here

Надеюсь, вы мне поможете, большое спасибо!

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Попробуйте добавить .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);
    }
});
0 голосов
/ 24 июня 2019

Обычно лучше, чтобы база данных сортировала ваши записи, а не выполняла эту задачу во внешнем интерфейсе.

Один из распространенных подходов для вашего случая - сохранить обратное значение поля Usario, например, в дополнительном поле UsarioInv, и использовать метод orderByChild() следующим образом. :

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);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...