I am using a Firebase query to return orders within a date range. The date is saved as a string. However, this is returning incorrect information.
let startDate = "\(selectedDateStart.startOfMonth())"
let endDate = "\(selectedDateEnd.endOfMonth())"
let query = DATABASE.mainOrder.child(orderLocation).queryOrdered(byChild: "orderDate").queryStarting(atValue: startDate).queryEnding(atValue: endDate+"\u{f8ff}")
query.observeSingleEvent(of: .value, with:{ (snapshot) in
if let tallies = snapshot.value as? [String:[String:Any]] {
self.allFilteredOrdersMonth = self.allFilteredOrdersMonth.merging(tallies) { (_, new) in new }
for items in tallies.keys {
print("Month Start Date Search: \(startDate), End Date Search: \(endDate), Order #: \(items), Order # Date Created: \(tallies[items]!["orderDate"]!)")
}
}
completionHandler()
})
I have attached one of the results below from a query.
startDate = 01/01/2022
endDate = 01/31/2022
Returned Order #: *****
Returned Order # Date Created: 01/19/2021