2016-10-25 54 views
0

我想添加除當前數據以外的數據。 我知道的唯一方法是保存當前數據,將其添加到我的應用程序中,然後將其寫入Firebase。但是如果兩個人在確切的時間這樣做呢?首先執行此操作的人將被禁止。在Swift 3中添加數據到Firebase而不是SetValue

那麼您是否知道以其他方式將數據添加到Firebase而不是SetValue?

回答

1

爲了解決這個同步值更新用,runTransactionBlocks使用

喜歡這個功能,可以說這個基準是noOfPost的,所有我想要做的是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

相關問題