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

时间:2015-08-12 13:29:32

标签: firebase

我的Firebase架构如下所示,

enter image description here

我正在尝试获取general中的数据,并按numberOfLikes属性对其进行排序。根据我对orderByChild的理解,以下代码应该有效。

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

但是我没有按照numberOfLikes排序我的数据,而是按字典顺序排列数据。

1 个答案:

答案 0 :(得分:5)

JSON对象的属性采用未定义的顺序。由于val()返回表示值的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());
  });
});