我正在使用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)")
}
})
}
})
}

发布于 2016-10-10 01:53:06
Geofire旨在将地理位置数据与其他对象数据分开。API不允许混合使用它们。
要将项目的位置信息与该项目的其他信息进行匹配,可将它们存储在同一密钥下
Orders
<orderId>
OrderLocations (or whatever key you prefer, as long as it is separate)
<orderId>https://stackoverflow.com/questions/39946544
复制相似问题