Reverse Sort Order

enter image description here

var playersRef = firebase.database().ref("team_mapping/");


playersRef.orderByChild("score").limitToFirst(7).on("child_added", function(data) {
}

Using this query, I can sort it in ascending order. But I wanted to sort in descending order. Can any body suggest me somehow do this. Any help would be appreciated.

Thanks at Advance !!

+1
source share
2 answers

You can limit the last 7, which will give you the highest scores, as the request is in ascending order. Then all you have to do is reverse the last 7 you get so that they are in descending order.

var playersRef = firebase.database().ref("team_mapping/");
var playersData = [];
var pageCursor;

playersRef.orderByChild("score").limitToLast(7).on("child_added", function(data) {
    playersData = [data] + playersData;
}

UPDATE

Here is an example of how you can paginate points.

const query = firebase.database().ref("team_mappings").orderByChild('score');

var snapshots = [];

function reversedChildren(snapshot) {
    var children = [];
    snapshot.forEach(function (child) { children.unshift(child); });
    return children;
}

function addPlayerToLeaderBoard(snapshot) {
    var key = snapshot.key;
    var place = snapshots.indexOf(snapshot) + 1;
    var score = snapshot.child('score').val();
    $('#leaderboard').append(`<li><b>${key}: ${score}</li>`);
}

function parsePage(snapshot) {
    var children = reversedChildren(snapshot);
    children.forEach(function (child) {
        players.push(child);
        addPlayerToLeaderBoard(child);
    });
    pageCursor = children[children.length - 1];
}

function reloadPlayers() {
    players = [];
    pageCursor = null;
    query.limitToLast(5).once('value').then(parsePage);
}

function loadMorePlayers() {
    query.endAt(pageCursor).limitToLast(5).once('value').then(parsePage);
}

reloadPlayers();

$('#reload').on('click', reloadPlayers);
$('#load_more').on('click', loadMorePlayers);
+1
source

reverse() , , [], this.items.reverse()

ref.subscribe(snapshots => {
       this.items = [];
      snapshots.forEach(snapshot => {

        this.items.push(snapshot);

      });
      **this.items.reverse();**
    },
0

Source: https://habr.com/ru/post/1678821/


All Articles