2016-10-07 16 views
0

私はFirebaseの中でStringというユーザの評判を高めることができる簡単な計算機能を作ろうとしました。だから、私はそれを作ったが、問題は1を追加するのではなく、2を加えて、私のコードの中にロジックエラーが表示されない。 Firebaseノードに評判が "0" である場合Firebaseの値を使った計算

func reputationCalculation(){ 

     self.databaseRef.child("users").child(currentUser.generalDetails.uid).child("reputation").runTransactionBlock({ 
      (currentData:FIRMutableData!) in 

      var count: Int = Int(self.currentUser.generalDetails.reputation)!// At this point it is 0 in my case 
      count += 1// add one to previous value 
      print(count)//print the value 
      self.currentUser.generalDetails.reputation = String(count)//Set the value in Singleton 
      self.reputationLabel.text = self.currentUser.generalDetails.reputation//Show on label 
      currentData.value = String(count) 
      return FIRTransactionResult.success(withValue: currentData) 

     }) 
    } 

は、例えば、func場合に呼び出されます。 12を出力し、最後の値をFirebaseに設定します。何が問題ですか?

答えて

0

メソッドrunTransactionBlockが2回呼び出されないかどうかを確認する必要があります。これは、firebaseで発生します。