Каждый раз, когда пользователь нажимает кнопку, я хотел бы обновить очки, выигрыши, проигрыши для пользователя, добавив, например, например, очки, полученные после выполнения задания. Однако я не уверен, как это сделать. Буду ли я использовать обновление, получить дочерние элементы в другой функции и добавить к ним или что-то еще? Моя функция ниже записывает данные в firebase для выполнения задачи, но не увеличивает дочерние значения (вместо этого они заменяют значения, которые мне не нужны).
static func create(username: String, posValue: Int, negValue: Int, wins: Int, losses: Int) {
let rootRef = Database.database().reference()
let totalPoints = posValue - negValue
let profileRef = Database.database().reference().child("profile").child(username).childByAutoId()
_ = profileRef.key
var multiUpdateValue = [String: Any]()
let profileDict: [String: Any] = ["totalPoints": totalPoints,
"posPoints": posValue,
"negPoints": negValue,
"wins": wins,
"losses": losses]
multiUpdateValue["profile/\(username)/\(profileRef.key ?? "")"] = profileDict
rootRef.updateChildValues(multiUpdateValue) { error, ref in
if let error = error {
assertionFailure(error.localizedDescription)
return
}
}
}
Мне интересно, могу ли я что-то добавить в профиль Dict. Например, для потомка «totalPoints» я могу установить его на totalPoints и УЖЕ СУЩЕСТВУЮЩИЕ totalPoints в firebase.
let profileDict: [String: Any] = ["totalPoints": totalPoints + (something???),
"posPoints": posValue + (something???),
"negPoints": negValue + (something???),
"wins": wins + (something???),
"losses": losses + (something???]