【发布时间】:2016-02-26 21:45:24
【问题描述】:
我正在尝试查询我的数据库,以便它根据子键检索有序列表。我按如下方式进行操作(见下文),但没有任何反应,这意味着它返回的对象排序方式与存储在 Firebase 数据库中的方式完全相同。怎么回事?
self.getAllProfiles = function () {
var qProfile = $q.defer();
var ref = new Firebase(FBURL);
ref.child("users").orderByChild('last_update').on("value", function (snapshot) {
console.log(snapshot.val()) // HERE IS WHERE IT SHOULD BE ORDERED
qProfile.resolve(snapshot.val());
}, function (errorObject) {
qProfile.reject(errorObject);
});
return qProfile.promise;
};
添加,我的用户节点如下所示:
users
/$username
/last_update
/id
/data
/profile_image
/display_name
这是一个快照:
Tester: Object
github: Object
last_update: 1447732462170
userId: "github:12345"
【问题讨论】:
-
您能否将您的数据显示为无序,然后作为快照返回时的样子?
-
用快照更新了问题
-
很难判断您提供的数据发生了什么。你能创建一个 JSBin 来演示你的问题吗?这样可以更轻松地解决正在发生的事情。
-
以下可能的答案。但正如大卫所说:下次考虑创建一个 JSBin/JsFiddle,因为它将提供一个最小的、完整的示例。现在缺少的一件事是足够的数据来了解您所看到的内容以及可能的原因(“最小”和“完整”之间总是很棘手的平衡)。
-
确保您实际上是在循环通过快照子项。如果您只是打印快照,它会像标准 JSON 一样排序,而不是从 firebase 服务器返回的方式。
标签: javascript firebase firebase-realtime-database