我正在尝试按每个后代子代的时间戳对Firebase查询进行排序。相反,我只是获取未排序的存储在数据库中的数据。我正在使用firebase npm软件包。
数据结构如下:
posts
-Lsx-tFbXe83gANXP3TD
-timestamp: 1466171493193
-Lsx-sWzXe83gANWNM3R
-timestamp: 1466171493111
这是我使用的JavaScript代码:https://firebase.google.com/docs/database/web/lists-of-data
firebase.database()
.ref("posts")
.orderByChild("timestamp")
.on("value", function(snapshot) {
_this.setState({
posts: Object.values(snapshot.val()),
loading: false
});
});
谢谢!
答案 0 :(得分:1)
您获得的snapshot
包含与查询相匹配的有关子节点的三段信息:
由于JSON对象只能包含键和值,因此一旦调用snapshot.val()
,所有有关排序的信息都会丢失。
要保持顺序,您需要将信息转换为数组:
var values = [];
snapshot.forEach(function(child) {
values.push(child.val());
})