我在特定集合中创建的每个文档中都有一个日期字段。此日期字段的数据另存为字符串。执行查询时,我想通过firebase中的whereField()
方法属性将date字段与当前日期进行比较,以获取与该比较一致的文档。
我已经在下面尝试了一些代码,但是它并不能完全满足要求。
日期字段中的数据以eventDate: "Fri Aug 30 2019"
let db = Firestore.firestore()
let date = Date.init()
let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.timeStyle = .none
formatter.locale = Locale(identifier: "en_US")
formatter.dateFormat = "eee MMM dd yyyy"
let currDate = formatter.string(from: date)
db.collection("Events").whereField("eventDate", isGreaterThanOrEqualTo: currDate).getDocuments() {
// completion code not necessary for this question
上面的代码仅返回在Tue Aug 27 2019
和Wed Aug 28 2019
上发生的事件,并且知道发生事件的日期还有更多。
答案 0 :(得分:0)
使用日历组件应该是更好的方法,像这样吗?
let db = Firestore.firestore()
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: Date())
let currDate = calendar.date(from: components)!
db.collection("Events").whereField("eventDate", isGreaterThanOrEqualTo: currDate).getDocuments()