iOS Firebase -При разветвлении -InvalidPathValidation, причина: '(child :) Должна быть непустой строкой и не содержать'. ' '#' '$' '[' или ']' ' - PullRequest
0 голосов
/ 13 января 2019

Я раздуваю отправку данных на разные ссылки. Когда я впервые публикую код ниже, все работает нормально. Затем я снова отправляю код, используя тот же самый 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 не содержат недопустимых символов.

Почему эта проблема возникает только при разветвлении и добавлении еще одного ребенка в реф?

1 Ответ

0 голосов
/ 13 января 2019

Попробуйте исправить ваш uid, чтобы он выглядел примерно так

guard let uid = Auth.auth().currentUser.uid else { return }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...