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

时间:2016-07-16 17:27:19

标签: 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" : "A",
    "timestamp" : "04-03-2014 03:57:56"
  }
}

是否可以在一定日期范围内按时间戳键过滤对象?例如,我想获取时间戳从2015年1月到今天的对象。如果不可能,按日期过滤对象的更好方法是什么?...我正在开发iOS应用程序。

感谢。

1 个答案:

答案 0 :(得分:3)

您可以按timestamp对快照数据进行排序,并定义您希望数据的timestamp限制。 例如,您需要来自特定时间戳timestamp1的所有数据,您的引用处理程序应如下所示:

let refHandle = tableRef.queryOrderedByChild("timestamp").queryEndingAtValue("timestamp1").observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in
            for item in snapshot.children {

            }
        })

您还可以通过添加queryLimitedToLastqueryLimitedToFirst来应用所需的记录数量:

  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