我的应用程序在Firebase中存储meetup。每个meetup都有一个结束日期,该日期已转换为字符串并作为meetup的属性保存在Firebase中(参见图)。当应用程序从Firebase中检索数据时,它会将所有的meetup放入一个数组中,如果结束日期是过去的话,则过滤掉meetup。我试图找到一种查询Firebase的方法,它只提取结束日期等于或大于当前日期的meetup。不需要过去有结束日期的Meetup,也永远不会在应用程序中显示,此外,它还增加了用于下载Meetup的网络带宽。有人对如何从查询中排除meetup以便我不必在客户端筛选meetup有什么解决方案/建议吗?
最佳答案
Firebase在这里提供了一系列查询和限制功能:
https://firebase.google.com/docs/reference/ios/firebasedatabase/interface_f_i_r_database_query#a5d089e583013c7cdcd653f974e2cba56
如果我没有弄错的话,您应该能够像这样对meetup构建一个有限的查询
ref.child("meetups").queryOrderedByChild("endDate").queryStartingAtValue(currentDate).queryEndingAtValue(currentDate).observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
//do something
})
编辑
您需要将startDate和endDate字段存储为时间戳