Ios Firebase-如何检索日期范围内的对象?

Ios Firebase-如何检索日期范围内的对象?,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我在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

我在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应用程序


谢谢。

您可以按
时间戳对快照数据进行排序,并定义一个
时间戳
限制,从中获取数据。 例如,如果希望所有数据来自特定的时间戳
timestamp 1
,则引用处理程序应如下所示:

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查询的内容。

您可以按时间戳对快照数据进行排序,并定义一个时间戳限制,从中获取数据。 例如,如果希望所有数据来自特定的时间戳
timestamp 1
,则引用处理程序应如下所示:

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查询的内容。

如果您可以将时间戳存储为unix时间戳而不是日期格式,那就更好了。在这种情况下,基于时间戳的过滤将很容易。如果可以将时间戳存储为unix时间戳而不是日期格式,则效果会更好。在这种情况下,基于时间戳的过滤将很容易。