【问题标题】:Issue saving GeoLocation using Geofire in Firebase using Swift使用 Swift 在 Firebase 中使用 Geofire 保存 GeoLocation 的问题
【发布时间】:2016-10-09 17:38:39
【问题描述】:

我正在为 Firebase 后端使用 Geofire 框架,但在数据库中保存位置时遇到问题。

我需要按照自动生成的 id 值的顺序将用户选择的位置保存在 Orders 表中。

    @IBAction func proceedOrder(_ sender: UIButton){

    FIRAuth.auth()?.addStateDidChangeListener({ (auth, user) in
        if user != nil {

            let userUID = (user?.uid)!
            let scheduled = self.pickDateTextField.text!
            let time = self.pickTimeTextField.text!
            let service = self.pickServiceTextField.text!
            let model = self.carModelTextField.text!
            self.ref = FIRDatabase.database().reference(fromURL: "https://***-****-***.firebaseio.com/")
            let geoFire = GeoFire(firebaseRef: self.ref)
            let dateCreated = Int(NSDate().timeIntervalSince1970)
            let orderRef = self.ref.child("Orders").childByAutoId()

            let values = ["uid":userUID,"date_Created":dateCreated,"date_Scheduled":scheduled,"time_Scheduled":time,"service_Type":service,"car_Model":model,"status":"Scheduled"] as [String : Any]
            orderRef.updateChildValues(values, withCompletionBlock: { (err, dbRef) in
                if err != nil {
                    print("Error: \(err)")
                    return
                } else {
                    geoFire?.setLocation(self.currentLocation, forKey: "Orders\(dbRef.key)")
                }
            })

        }
    })
}

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database geofire


    【解决方案1】:

    Geofire 旨在将地理位置数据与您的其他对象数据分开。 API 不允许混合它们。

    要将项目的位置信息与该项目的其他信息匹配,请将它们存储在同一个键下

    Orders
      <orderId>
    OrderLocations (or whatever key you prefer, as long as it is separate)
      <orderId>
    

    【讨论】:

    • 感谢弗兰克的快速回复。但是我以后查询订单时如何将它们链接在一起?
    • 啊,好吧……也许是 g: "id"。我在订单中使用 g: "id" --->id--> values
    • 您在两个地方都使用相同的密钥。所以Orders/&lt;key&gt;Geodata/&lt;key&gt;是一一对应的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多