我在Firebase中有下一个JSON结构:
{
"-KGX6kYg1NO6d9hn-8um" : {
"phase" : "A",
"timestamp" : "12-18-2015 19:43:37"
},
"-KGXOGSxa3vompZX9UO_" : {
"phase" : "B",
"timestamp" : "03-28-2016 15:28:21"
},
"-KMUvszD-vm3Nu02sofd" : {
"phase" : "A",
"timestamp" : "04-03-2014 03:57:56"
}
}
是否可以在一定日期范围内按时间戳键过滤对象?例如,我想获取时间戳从2015年1月到今天的对象。如果不可能,按日期过滤对象的更好方法是什么?...我正在开发iOS应用程序。
感谢。
答案 0 :(得分:3)
您可以按timestamp
对快照数据进行排序,并定义您希望数据的timestamp
限制。
例如,您需要来自特定时间戳timestamp1
的所有数据,您的引用处理程序应如下所示:
let refHandle = tableRef.queryOrderedByChild("timestamp").queryEndingAtValue("timestamp1").observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in
for item in snapshot.children {
}
})
您还可以通过添加queryLimitedToLast
或queryLimitedToFirst
来应用所需的记录数量:
let refHandle = tableRef.queryOrderedByChild("timestamp").queryEndingAtValue("some_time_stamp").queryLimitedToLast(kPostLimit + 1).observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in
for item in snapshot.children {
}
})
另外,您想了解以下有关Firebase中常见SQL查询的post。