Я пытаюсь обновить дочерний узел в моей базе данных firebase, используя childByAutoID и updateChildAt (). Когда я выполняю код, тип обновляется, однако он находится за пределами узла, как показано ниже.
![image](https://i.stack.imgur.com/sk9Ay.png)
тип: 3 должен быть обновлен внутри узла, который говорит тип: 2
код, который я использую для выполнить это выглядит как
let DB_REF = Database.database().reference()
let WORK_PROG_REF = DB_REF.child("workInProgress")
func completeJobProgress() {
let workUser = self.workerUser
let uid = Auth.auth().currentUser?.uid
let workerId = workUser?.uid
let address = workerUser?.address
let createDate = Int(NSDate().timeIntervalSince1970)
Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
guard let dictionary = snapshot.value as? [String : Any] else { return }
let user = User(dictionary: dictionary as [String : AnyObject])
workUser?.uid = snapshot.key
let docData: [String: Any] = ["workerId": uid!,
"creationDate": createDate,
"fromId" : workerId!,
"location": address!,
"type": 3,
"checked": 0,]
self.setJobToCompletedInDatabase(uid: uid!, values: docData as [String : AnyObject])
self.postJobNotificationsIntoDatabseWithUID(uid: workerId!, values: docData as [String : AnyObject])
//how I initially got the type: 3 to save under the node was by using the line below
WORK_PROG_REF.child(uid!).child("type").setValue(3)
print(workerId!)
}, withCancel: { (err) in
print("attempting to load information")
})
print("Finished saving user info")
self.dismiss(animated: true, completion: {
print("Dismissal complete")
})
}
это просто устанавливает тип, который будет находиться под узлом. Я попытался использовать приведенный ниже код, но со строкой ниже я получаю сообщение об ошибке. Не удается преобразовать значение типа 'String' в ожидаемый тип аргумента '[AnyHashable: Any]'
WORK_PROG_REF.child(uid!).updateChildValues("type").setValue(3)
Спасибо за все и вся помощь