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());
});
});
我的 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());
});
});