Как увеличить дочерние значения в базе данных Firebase (Swift)? - PullRequest
0 голосов
/ 14 января 2019

Каждый раз, когда пользователь нажимает кнопку, я хотел бы обновить очки, выигрыши, проигрыши для пользователя, добавив, например, например, очки, полученные после выполнения задания. Однако я не уверен, как это сделать. Буду ли я использовать обновление, получить дочерние элементы в другой функции и добавить к ним или что-то еще? Моя функция ниже записывает данные в 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???]
...