Firebaseでオブジェクトを作成すると、私はchildByAutoIdを使用します。これらの特定のオブジェクトを後でどのように更新できますか? Firebaseが自動的に更新するキーの値を取得するのに問題があります。 Snapshot.keyは "users"を返します。firebaseの値をchildByAutoIdで更新するには?
{
"users" : {
"-KQaU9lVcUYzIo52LgmN" : {
"device" : "e456f740-023e-440a"
"name: "Test"
}
},
-KQaU9lVcUYzIo52LgmN
のキーはどうすれば入手できますか?私はデバイスの子を更新したい。ここに私がこれまで持っているものがあります。現在のところ、単一の子と完全に別個のスナップショットを作成しています。
self.rootRef.child("users").queryOrdered(byChild: "name").queryEqual(toValue: self.currentUser).observeSingleEvent(of: .value, with: { (snapshot) in
let key = self.rootRef.child("users").childByAutoId().key
let childValues = ["device": device]
self.rootRef.child("users").child(key).updateChildValues(childValues)
編集:deviceは、コード内にさらに設定された文字列です。このスコープでは定義されていません(この質問のために読みやすくするため)。
は完全に働きました!どうもありがとうございます!!私は方法があることを知っていたが、私はそれを理解できなかった。 'snapshot.children.allObjects'によるループは、行く方法のように見えます – winston
優秀!お役に立てて嬉しいです。私はここに人々に尋ねることで、まったく同じ方法を学びました。 ;) – Ryan