Firestoreドキュメント内のネストされたdictにいくつかの新しいフィールドを設定しようとしていますが、その結果、データが上書きされます。必要な情報の最初の部分をここに書きます。
upd = {
"idOffer": {
<offerId> : {
"ref" : <ref>,
"value" : <value>
}
}
}
<documentRef>.update(upd)
したがって、ここでの出力は次のようになります。 <documentid>:{idOffer:{<offerId>:{ref:<ref>, value:<value>}}}
次に、このコードを使用して、現在のネストされたデータにいくつかのフィールドを追加します。
approval = {
"isApproved" : <bool>,
"dateApproved" : <date>,
"fullApproval" : <bool>
}
<documentRef>.update({
"idOffer.<offerId>" : approval
})
私が得ることを期待しているところから:
<documentid>:{idOffer:{<offerId>:{ref:<ref>, value:<value>, isApproved:<bool>,dateApproved:<date>,fullApproval:<bool>}}}
しかし、私は最終的に:
<documentid>:{idOffer:{<offerId>:{isApproved:<bool>,dateApproved:<date>,fullApproval:<bool>}}}
注:<>を使用して、ドキュメントIDや参照などの動的データを参照します。
ディクショナリ(またはマップ、オブジェクト、または他の言語で使用されるキーと値のペア構造)を使用してupdateを呼び出すと、指定された最上位キーの背後にあるデータセット全体が置き換えられます。したがって、のキーを使用してupdateを呼び出すと、idOffer.<offerId>
そのキーの下にあるすべてのものが置き換えられますが、レベルの他のすべての子キーはidOffer
変更されません。
キーの背後にあるオブジェクト全体を置き換えたくない場合は、更新する子についてより具体的にしてください。あなたの例では、単一のidOffer.<offerId>
キーを更新する代わりに、ネストされた子に3つのキーを指定します。
idOffer.<offerId>.isApproved
idOffer.<offerId>.dateApproved
idOffer.<offerId>.fullApproval
つまり、渡す辞書には、の1つのキーではなく、トップレベルにこのような3つのキー付きエントリが含まれている必要がありidOffer.<offerId>
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加