Ответ Джея - лучший способ выполнить то, что вы просите, но это альтернатива. Если вы новичок, это может быть легче понять и начать с. По мере продвижения используйте код Джея.
Похоже, вы хотите сделать что-то вроде этого.
Ваша структура базы данных в Firebase:
root
|
@-012345 // eg. employeeId
|-"firstName": "Hello"
|-"lastName": "World"
|-"age": "25"
Вы хотите добавить или удалить поле, есть несколько способов сделать это, но это легко. Все, что вам нужно, это отслеживать исходные значения, затем добавлять их плюс новые значения в Dictionary
и исключать все, что вы не хотите отправлять в Firebase, используя метод .setValue()
:
// class properties
let rootRef: DatabaseReference? = Database.database().reference()
let employedID = "012345"
let firstName = "Hello" // original value you want to keep
let lastName = "World" // original value you want to keep
let age = "25" // original value you want to REMOVE
lat gender = "female" // NEW value you want ADDED
// press the button to send the write the values to Firebase
@IBAction fileprivate func updateEmployeeButton(_ sender: UIButton) {
// add the values to a dictionary
let dict = [String:Any]()
dict.(firstName, forKey: "firstName")
dict.(lastName, forKey: "lastName")
dict.(gender, forKey: "gender")
let employeeIdRef = rootRef?.child(employedID)
employeeIdRef?.setValue(dict) // call Firebase's .setValue method and pass the dict as an argument
}
Ваша структура базы данных теперь будет выглядеть так:
root
|
@-012345
|-"firstName": "Hello"
|-"lastName": "World"
|-"gender": "female"
Обратите внимание на способ, которым я предлагаю полностью перезаписать то, что было в этом узле, но путь Джея сохраняет то, что было там, но все равно дает вам изменения, которые вы хотите внести.