2016-09-13 17 views
1

私はこれに続いていますdocument。更新のための私のコードを以下に示します。Firebase DBの子供の特定の値を更新する方法

func updateDealResultToServer(key:String,dealResult : String) 
{ 

    let post = ["dealResul": dealResult] 
    let childUpdates = 
     ["/komal_xyz/\(key)": post 
     ] 

    rootRef.updateChildValues(childUpdates) 

} 

これは私のFirebaseデータベース構造です: enter image description here

私だけdealResultの値を変更したいです。 1473670100726のような特定の子ノードに対して上記のコードを実行しようとすると、dealResul以外の値は削除されます。

+0

@omal Kamble:あるデバイスから値を削除して、別のデバイスから同時に値を削除するとどうなりますか?アンドロイドについて説明してください。私はどのように仕事を理解していない? –

答えて

7

Firebaseリアルタイムデータベース、使用: - あなたはどちらかrunTransactionBlock:

を使用することができます

  • この関数を呼び出している間

    : -

    updateTotalNoOfPost{ 
         print("Updated") 
         } 
    
  • それともがちょうどupdateValues

    let prntRef = FIRDatabase.database().reference().child("komal_kyz").child(your_AuroID) 
        prntRef.updateChildValues(["dealResul":dealResult]) 
    

PSを呼び出す: - runTransactionBlock:代わりの使用して好みます特定のノードのみをインクリメントしたい場合は、を入力します。 - https://stackoverflow.com/a/39458044/6297658

5

私は、単一の子を更新(私はスウィフト3を使用しています、わずかな構文の変更が適用される場合がありますが、あなたは問題ないはずことに注意してください)のためsetValueを使用することをお勧め:内の特定のノードに値を更新するための

rootRef.child("komal_kyz").child(key).setValue(["dealResul":dealResult]) 
0
let ref = FIRDatabase.database().reference().root.child("users").child("childKey").updateChildValues(["childKeyForUpdate": "NewData"]) 
+0

それを詳しく教えていただけますか? – mrun

+0

いくつか詳細を教えてください。 – aircraft

関連する問題