我的Firebase架构如下所示,
我正在尝试获取general
中的数据,并按numberOfLikes
属性对其进行排序。根据我对orderByChild
的理解,以下代码应该有效。
var ref = new Firebase('http://myapp.firebaseio.com/floorPosts/general');
ref.orderByChild('numberOfLikes').once('value', (snapshot) => {
return snapshot.val();
});
但是我没有按照numberOfLikes排序我的数据,而是按字典顺序排列数据。
答案 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());
});
});