orderByChild 按字典顺序而不是按指定键对键进行排序

orderByChild sorting keys lexicographically rather than by specified key

我的 Firebase 架构如下所示,

我正在尝试获取 general 中的数据并按 numberOfLikes 属性 对它们进行排序。根据我对 orderByChild 的理解,下面的代码应该可以工作。

var ref = new Firebase('http://myapp.firebaseio.com/floorPosts/general');
ref.orderByChild('numberOfLikes').once('value', (snapshot) => {
  return snapshot.val();
});

但我不是按 numberOfLikes 对数据进行排序,而是按字典顺序对键进行排序。

JSON 对象的属性未定义顺序。由于 val() returns 表示值的 JSON 对象,因此其中的属性顺序未定义。

要按正确的顺序排列子项,请使用 DataSnapshot.forEach():

var ref = new Firebase('http://myapp.firebaseio.com/floorPosts/general');
ref.orderByChild('numberOfLikes').once('value', (snapshot) => {
  snapshot.forEach(function(childSnapshot) {
    console.log(childSnapshot.val());
  });
});