Сохранить местоположение GeoFire под случайным идентификатором Firebase Swift 4 - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь сохранить информацию о geofire под каждым postId, но в настоящее время не совсем уверен, как это сделать. Может кто-нибудь, пожалуйста, помогите мне разобраться, как сохранить информацию под узлом postId.

        @objc func handlePost() {

    navigationItem.rightBarButtonItem?.isEnabled = false

    guard let uid = Auth.auth().currentUser?.uid else { return }

    guard let caption = textView.text, caption.characters.count > 0 else { return }

    let userPostRef = Database.database().reference().child("posts").child(uid)

    let ref = userPostRef.childByAutoId()

    guard let locationName = locationNameButton.titleLabel?.text else { return }

    let latitude = lat
    let longitude = long

    let geoLatitude = (latitude as! NSString).doubleValue
    let geoLongitude = (longitude as! NSString).doubleValue

    geoFireRef = Database.database().reference().child("posts").child(uid)
    geoFire = GeoFire(firebaseRef: geoFireRef)

    let values = ["caption": caption,"locationName": locationName, "latitude": latitude,"longitude": longitude,"creationDate": Date().timeIntervalSince1970] as [String : Any]

    geoFire?.setLocation(CLLocation(latitude: geoLatitude, longitude: geoLongitude), forKey: ref.key!)

Post and UID node

1 Ответ

0 голосов
/ 09 ноября 2018

Если вы хотите сохранить геолокацию под тем же ключом, что и

let ref = userPostRef.childByAutoId()

Вы можете просто получить свойство key из ref. Итак:

geoFire?.setLocation(CLLocation(latitude: geoLatitude, longitude: geoLongitude), forKey: ref.key)
...