2016-10-25 17 views
0

現在のデータに加えてデータを追加します。 私が知っている唯一の方法は、現在のデータを保存し、それを私のアプリケーションに追加してからfirebaseに書き出すことです。しかし、2人が正確な時間にそれをしたらどうなるでしょうか?最初にそれをした人は禁止されます。Swift 3のSetValueの代わりにFirebaseにデータを追加します。

SetValueの代わりにFirebaseにデータを追加する方法は他にもありますか?この同時値updationに取り組むために

答えて

1

runTransactionBlocksがこの関数のよう

を使用している、この参照がnoOfPostのものであり、私がやりたいすべてが2場合1

によって価値を高めると言うことができますユーザーはこの基準値を同時に増加させます。この要求は別のスレッドにアップロードされ、データベース内で同時に更新される可能性を無効にします。 -

func updateTotalNoOfPost(completionBlock : @escaping (() -> Void)){ 


    let prntRef = FIRDatabase.database().reference().child("_yourNodeRef") 

    prntRef.runTransactionBlock({ (returned_Data) -> FIRTransactionResult in 
     if let totalPost = returned_Data.value as? Int{ 
      print(totalPost) 
      returned_Data.value = totalPost+1 //Your updated or appended value, or whatever you wanna do with this 

      return FIRTransactionResult.success(withValue: returned_Data) 
     }else{ 

      return FIRTransactionResult.success(withValue: returned_Data) 

     } 
     }, andCompletionBlock: {(error,completion,snap) in 

      print(error?.localizedDescription) 
      print(completion) 
      print(snap) 
      if !completion { 

       print("The value wasn't able to Update") 
      }else{ 

       completionBlock() 
      } 
    }) 

} 

関数を呼び出す: -

updateTotalNoOfPost{ 
     print("The value was updated") 
    } 
+0

どのように関数を呼び出すのですか? – Eliko

+0

回答が更新されました。 – Dravidian

+0

パーフェクト!できます!ありがとう:) – Eliko

関連する問題