У меня есть эта функция пытается выполнить транзакцию, чтобы обновить Firebase значение:runTransactionBlock currentData является нулевым
if opponentPoints < self.points {
print("the host won")
refPoints.runTransactionBlock({ (currentData:FIRMutableData) -> FIRTransactionResult in
print("currentData", currentData.value!)
if var pointsToUpdate = currentData.value as? [String : Any] {
var pointsUp = pointsToUpdate["points"] as! Int
pointsUp += 3
pointsToUpdate["points"] = pointsUp
currentData.value = pointsToUpdate
return FIRTransactionResult.success(withValue: currentData)
}
return FIRTransactionResult.success(withValue: currentData)
})
и у меня есть эта структура:
users
uid
points
name
etc.
Проблема заключается в том, что, когда я пытаюсь напечатать currentData
, Я получаю null в качестве результата.
Что я делаю неправильно?
Если это так, не следует ли currentData в конечном итоге возвращать правильное значение на сервере после сравнения значений? Я продолжаю получать null, хотя есть значение в указанном месте. –