【发布时间】:2017-03-27 01:58:58
【问题描述】:
这是我的数据结构:
ft-public-records
2015-01-01 00:00:00 GMT
addedByUser: "user@gmail.com"
rating: 1
time: "2015-01-01 00:00:00 GMT"
timestamp: 1490437551.593684
没有queryStartAt,我可以毫无问题地获取对象:
self.publicRef.child("2015-01-01 00:00:00 GMT").queryOrdered(byChild: "rating").observe(FIRDataEventType.value, with: { snapshot in
print(snapshot)
})
结果:
Snap (2015-01-01 00:00:00 GMT) {
addedByUser = "user@gmail.com";
rating = 1;
time = "2015-01-01 00:00:00 GMT";
timestamp = "1490437551.593684";
}
但是,当我将 queryStarting 添加到 1 时,我得到了 null。
self.publicRef.child("2015-01-01 00:00:00 GMT").queryOrdered(byChild: "rating").queryStarting(atValue: 1).observe(FIRDataEventType.value, with: { snapshot in
print(snapshot)
})
结果:
Snap (2015-01-01 00:00:00 GMT) <null>
请问我错过了什么?
【问题讨论】:
-
添加了一个答案,让我知道它是否有效。谢谢。
-
你能分享一个最小的、有代表性的真实 JSON 样本吗?现在只有一个节点,这使得很难看到查询应该如何工作。最好有真正的 JSON(作为文本,没有截图)。您可以通过单击your Firebase Database console 中的导出 JSON 链接轻松获取此信息。
-
这些确实不是格式正确或使用不正确的查询。通常,查询将用于根据子节点的值读取未知节点。对于此问题中的查询,您已经知道密钥,因此不需要查询 - 可以使用 keyRef.observeSingleEvent(of: .value 检索该节点。也许我不明白您要做什么?它会使为所有评分等于 1 的孩子查询 ft-public-records 更有意义
标签: swift firebase firebase-realtime-database