2016-06-07 2 views
6

Я читаю пример firebase.google здесь https://firebase.google.com/docs/database/ios/save-data#save_data_as_transactions , и я пытаюсь написать свою собственную версию. У меня возникают проблемы, так как пример firebase оставляет меня более смущенным, чем я был до того, как я началfirebase runTransactionBlock

Все, что я пытаюсь сделать, - это когда человек нажал кнопку, это то, что он ++ (или + = 1) соответствует счету и другая кнопка удаляет его

Может кто-нибудь помочь мне понять, как это сделать ... другой пользователь на предыдущий вопрос отвечал ссылки на другие ответы языка и я попытался записать его в быстром языке, но я с треском не удался

+1

Пожалуйста, не удаляйте один вопрос, а затем отправляйте его снова. Если у вас есть информация для добавления к [вашему предыдущему вопросу] (http://stackoverflow.com/questions/37668501/ios-firebase-how-to-setvalue-of-1?noredirect1_comment62815948_37668501), нажмите кнопку "edit "ссылку под ним и добавить информацию. –

+1

Чтобы найти образцы других, использующих транзакции Firebase в swift, см. [Этот вопрос] (http://stackoverflow.com/questions/37061536) или [этот] (http://stackoverflow.com/questions/34778914/data -consistency-on-very-close-events-in-firebase/34779307 # 34779307) или некоторые другие из [этого поиска] (http://stackoverflow.com/search?q=%5Bfirebase%5D+transaction+swift). –

+1

Я согласен, что я только что нашел это, потому что этот блок транзакций в документах сумасшедший запутан. Я не знаю, почему это так запутанно. Приращение - довольно обычная вещь, у них должна быть только определенная функция, которая просто делает это, например incrementValue() или что-то еще. –

ответ

9

Благодаря полученным комментариям мне удалось это получить

....runTransactionBlock { (currentData: FIRMutableData) -> FIRTransactionResult in 

     var value = currentData.value as? Int 

     if value == nil { 
      value = 0 
     } 

     currentData.value = value! + 1 
     return FIRTransactionResult.successWithValue(currentData) 




    } 
+1

Вы на 100% уверены, что он эффективен? Вы тестировали несколько пользователей одновременно? Это выглядит намного проще, чем документы, поэтому, если вы уверены, что это работает, я предпочел бы использовать этот LOL –

Смежные вопросы