Добавить дочерний узел в ключ Firebase Geofire?

Я использую следующий метод Firebase Geofire, чтобы установить местоположение пользователя и сохранить его в базе данных. Проблема в том, что местоположение записывается в корень базы данных (root / userID / location). Есть ли способ изменить его, чтобы он сохранял местоположение в root / users / userID / location?

geoFire.setLocation(CLLocation(latitude: locValue.latitude, longitude: locValue.longitude), forKey: userID) { (error) in
    if (error != nil) {
        print("An error occured: \(error)")
    } else {
        print("Saved location successfully!")
    }
}

Когда я пытаюсь изменить forKey на "/users/\(userID)", я получаю сообщение об ошибке, указывающее, что ключ не может содержать специальные символы.

Спасибо!


person winston    schedule 24.09.2017    source источник
comment
Где вы ставите ссылку на geoFire? пожалуйста, покажите этот код   -  person 3stud1ant3    schedule 24.09.2017
comment
GeoFire управляет всем узлом, на котором вы его инициализируете. Хотя он не обязательно должен быть корнем базы данных (let geoFire = GeoFire(firebaseRef: FIRDatabase.database().reference("geo"))), добавлять дополнительные данные к узлам невозможно. См. Мой комментарий здесь, этот ответ или этот ответ   -  person Frank van Puffelen    schedule 24.09.2017
comment
@FrankvanPuffelen спасибо за ответ! Это помогло. Я инициализировал другой узел, как вы предложили. Также спасибо за другие ссылки. Они помогли объяснить, почему Geofire принудительно устанавливает местоположения на другом узле.   -  person winston    schedule 24.09.2017