Для одновременной записи в определенные дочерние узлы без перезаписи других дочерних узлов используйте метод updateChildValues .
В основном вы создаете массив с обновлениями / записями, которые хотите выполнить, изаписать этот массив в Firebase.Вот пример, показывающий, что 1 сообщение написано в двух разных местах:
//Create the new key
let key = self.tableRef.childByAutoId().key
//Post data that is going to be written
let post = ["uid": userID,
"author": username,
"title": title,
"body": body]
//Create the array with (two) updates
let childUpdates = ["/posts/\(key)": post,
"/user-posts/\(userID)/\(key)/": post]
//Write the array to the database
ref.updateChildValues(childUpdates)
Несколько вещей, о которых следует помнить, когда вы делаете это:
- Это все или ничего,Либо все записи терпят неудачу, либо все записи успешны.Если хотя бы одна из записей в массиве завершится неудачно, то все записи завершатся неудачей.
- Убедитесь, что вы используете правильную ссылку для каждой записи, поскольку она переопределит все данные в этом месте.