私はfirebaseデータベースに次のような構造を持っている:アップデート同じフィールドを
"profiles": {
"user_id" : {
"id_profile_1" : {
"photos" : ".."
"selected" : "0"
},
"id_profile_2" : {
"photos" : ".."
"selected" : "0"
},
...
}
}
は、一度にすべての子供たちにすべて同時に「選択」フィールドを更新する方法はありますか?
私はこれ作ってるんだ:
let ref = FIRDatabase.database().reference()
let post = ["selected": "-1"]
ref.child("profiles").child("user_id").updateChildValues(post)
をしかし、それは "user_idを" レベルで新しい子が追加されます。
ありがとうございます!明確にするために
UPDATE
、実際の構造は次のようになります。
"profiles": {
"AZWul77p47.." : {
"KeC9NCb4Kh..." : {
"photos" : ".."
"selected" : "1"
},
"Kj4yZOd6aJ..." : {
"photos" : ".."
"selected" : "0"
},
...
}
}
、ユーザーがアプリで別のプロファイルを選択したとき1」に、このプロファイルの変更の「選択」他のすべては "0"になります。だからこそ私は1回の呼び出しで他のすべてのものを "選択済み"を "0"に更新したいのです。
いいえ、あなたの現在のデータ構造を考えると、それは不可能です。 'selected'というプロファイルノード以外の親セクションを追加することができます。サブノードヘッダーに 'Selected_1'、 'Selected_2'などを指定することができます。その効率は、正確に「選択された」ということが何を意味するのか、そしてどれだけ多くの州が有するのかに依存します。ps:上のケースで 'selected = -1'を取ったので、私はこのアプローチに行きました。これは従来の意味ではかなり混乱しています – Dravidian
@Dravidianが答えに感謝します。私は-1を例として使用しました。選択された属性の唯一の有効な値は "0"または "1"です。 –