Я раздуваю отправку данных на разные ссылки. Когда я впервые публикую код ниже, все работает нормально. Затем я снова отправляю код, используя тот же самый postId, и снова он работает нормально.
let root: DatabaseReference!
let uid = gHcqsRzK0xZJ3Zp11xAikDTKIKw2 // Auth.auth().currentUser?.uid
root = Database.database().reference()
let postId = "123"
let postsRef = "posts/\(uid)/\(postId)"
let usesrRef = "users/\(uid)/\(postId)"
let dict = [String: Any]()
dict.updateValue(someOtherDict, forKey: postsRef)
dict.updateValue(someOtherDict, forKey: usersRef)
root.updateChildValues(dict, withCompletionBlock: { [weak self] (error, ref) in
Однако, когда я пробую тот же самый точный код и добавляю дополнительного дочернего элемента к ссылкам на веер, в первый раз все работает нормально, а во второй раз, когда я пытаюсь сделать репост снова, я получаю сообщение об ошибке
'InvalidPathValidation', причина: '(child :) Должна быть непустой строкой
и не содержать "." '#' '$' '[' или ']' '
let postId = "123"
let additionalUid = "456"
let postsRef = "posts/\(uid)/\(postId)/\(additionalUid)"
let usesrRef = "users/\(uid)/\(postId)/\(additionalUid)"
Я проверял часы (операторы печати и отладчик), и uid, ни postId, ни AdditionalUid не содержат недопустимых символов.
Почему эта проблема возникает только при разветвлении и добавлении еще одного ребенка в реф?