问题描述
我目前可以从 Firebase Firestore 拉下我的所有注释并毫无问题地显示它们。在我的快照侦听器中,我希望能够仅显示在过去一小时内创建的注释。我在下面包含了我的代码,但该代码不起作用,并且仍在我的 Firestore 中返回所有注释。
let hourAgo = Date().addingTimeInterval(-3600)
db.collection("pins").addSnapshotListener { QuerySnapshot,Error in
guard let documents = QuerySnapshot?.documents else {
print("No documents")
return
}
let annotation = documents.map { QueryDocumentSnapshot -> Pin in
let data = QueryDocumentSnapshot.data()
let latitude = data["latitude"] as? Double ?? 0.0
let longitude = data["longitude"] as? Double ?? 0.0
let eventTitle = data["eventTitle"] as? String ?? ""
let eventSubtitle = data["eventSubtitle"] as? String ?? ""
let lastUpdated = data["lastUpdated"] as? Timestamp ?? Timestamp.init()
let pinDate = lastUpdated.dateValue()
let coordinate = CLLocationCoordinate2D(latitude: latitude,longitude: longitude)
if pinDate >= self.hourAgo {
self.displayPins(coordinate: coordinate,eventSubtitle: eventSubtitle,eventTitle: eventTitle)
}else{
return Pin(latitude: latitude,longitude: longitude,eventTitle: eventTitle,eventSubtitle: eventSubtitle)
}
//print(annotation)
return Pin(latitude: latitude,eventSubtitle: eventSubtitle)
}
}
}
func displayPins(coordinate: CLLocationCoordinate2D,eventSubtitle: String,eventTitle: String) {
let annotation = MKPointAnnotation()
annotation.coordinate = coordinate
annotation.title = eventTitle
annotation.subtitle = eventSubtitle
mapView.addAnnotation(annotation)
}```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)