如何在Xcode 12- Swift 5中从Firebase Cloud服务器创建注释

问题描述

这是我使用的代码。我已经从以前的代码中保存了数据库中药房的排序列表!在代码中,我想检索该数组,然后在此数组中创建一个前循环(列表除进行排序外,还显示用户间的距离比特定距离更近的药房,但这无关紧要),以检索该数组。我保存在其他收藏中的药房的经度和纬度。我使用for循环(最接近药房名称中的for药房),然后在数据库查询我使用的文档是pharmacy(来自For循环)!一切正常,直到for循环!我什至无法打印任何东西!就是行不通!你能帮我吗?

class Home: UIViewController,CLLocationManagerDelegate {


@IBOutlet var MapView: MKMapView!

@IBAction func SwitchfromMapType(_ sender: Any) {
    if (sender as AnyObject).selectedSegmentIndex == 0{

        MapView.mapType = MKMapType.standard
        }
    else if (sender as AnyObject).selectedSegmentIndex == 1{

            MapView.mapType = MKMapType.satellite
        }}
@IBAction func FindNearestPharmacies(_ sender: Any) {
    
    
    let docRef1 = db.collection("closestpharmacies").document(user!.uid)

    docRef1.getDocument(source: .cache) { (document,error) in
        if let document  = document {
            let closestpharmacyname = document.get("ClosestPharmacies") as! Array<Any>
            
            print("Closest Pharmacies:",closestpharmacyname)
        

            for pharmacy in closestpharmacyname{
                print(pharmacy)
                let docref2 = db.collection("Pharmacies").document(pharmacy as! String)
                print("Pharmacy: ",pharmacy)
                docref2.getDocument(source: .cache) { (document,error) in
                    if let document  = document {
                        let pharmacylatitude = document.get("latitude") as! Double
                        let pharmacylongitude = document.get("longitude") as! Double
                        print(pharmacylatitude,pharmacylongitude)
                            
                        let pharmacyannotation = MKPointAnnotation()
                        pharmacyannotation.coordinate = CLLocationCoordinate2D(latitude: pharmacylatitude,longitude: pharmacylongitude)
                        pharmacyannotation.title = pharmacy as! String
                        self.MapView.addAnnotation(pharmacyannotation)
                    } else{
                        print("Document Does not exist")
                    }
            
            
    
                }}}}}



override func viewDidLoad() {
super.viewDidLoad()
    let docRef = db.collection("users").document(user!.uid)

    docRef.getDocument(source: .cache) { (document,error) in
        if let document  = document {
            let userlat = document.get("latitude") as! Double
            let userlong = document.get("longitude") as! Double
        
            let annotation = MKPointAnnotation()
            annotation.coordinate = CLLocationCoordinate2D(latitude: userlat,longitude: userlong )
            annotation.title = "Your Location"
            
            print(userlat,userlong)
            
            self.MapView.addAnnotation(annotation)
    
        } else {
            print("Document does not exist")
        }
    }}}
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)