0
Я создал простой проект Firebase, где я могу обновить некоторые значения в дереве Firebase, в частности, reputation
. Но проблема в том, что он сразу обновляется в Firebase, но не включен в ярлык в приложении. В чем причина этого?Обновленная ценность в Firebase не обновляется сразу на метке
Это код, как я обновить значение:
self.databaseRef.child("users").child((loggedInUser?.uid)!).child("reputation").runTransactionBlock({
(currentData:FIRMutableData!) in
var value = currentData.value as? Int
//check to see if the node exists, if not give value of 0.
if (value == nil) {
value = 0
}
currentData.value = value! + 1
return FIRTransactionResult.success(withValue: currentData)
})
И я получаю значение, как это:
let snapshot = snapshot.value as! [String: AnyObject]
if let reputation = snapshot["reputation"] {
self.reputationLabel.text = "\(reputation)"
} else {
print("reputation is nil")
}
К сожалению, это дает мне Ошибка: «runTransactionBlock: обнаружено использование, когда сохраняется постоянство. Помните, что транзакции * не будут сохраняться в перезапуске приложения s. Подробнее см. Https://www.firebase.com/docs/ios/guide/offline-capabilities.html#section-handling-transactions-offline. Дополнительно ()» Но обновляйте его сразу и поставить пустой внутри этикетки :) Значит ли это, что я должен взять на себя послесвечение от AppDelegate и не могу cahce значения? Я попытался удалить строку из делегата, но теперь он просто дает null. not nil. –
Если ваша персистентность включена, вам нужно будет обновить метку в первом блоке, где вы обновите значение. Я предполагаю, что это не проблема, когда ваш пользователь подключен к сети. пользователь, вы должны это сделать – Dravidian
Но даже если я удалил сохранение, я получаю null. –