仅显示过去一小时内创建的 Firebase 中的 Mapkit 注释

问题描述

我目前可以从 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 (将#修改为@)