2017-11-14 1 views
5

とネストされたオブジェクトでの更新フィールド:クラウドFirestore:firestoreの公式ドキュメント、次の動的キー

{ 
    name: "Frank", 
    favorites: { food: "Pizza", color: "Blue", subject: "recess" }, 
    age: 12 
} 

// To update favorite color: 
db.collection("users").doc("frank").update({ 
    "favorites.color": "Red" 
}) 

私の代わりに、色の動的なキーを使用したいと思います。

db.collection("users").doc("frank").update({ 
    "favorites[" + KEY + "].color": true 
}); 

これはもちろん不可能でエラーをスローします。

私はこれをやろうとしてきた:

db.collection("users").doc("frank").update({ 
    favorites: { 
     [key]: { 
      color": true 
     } 
    } 
}); 

それは実際に右キーを更新しているが、残念ながら、それは(それが削除されている)他のキーを上書きしています。

答えて

6

ファイアーベースの解決策(「/」を「。」に置き換える)に触発されたその解決策を見つけました。

var usersUpdate = {}; 
usersUpdate[`favorites.${key}.color`] = true; 

db.collection("users").doc("frank").update(usersUpdate); 
+0

関連ドキュメント - > https://firebase.google.com/docs/firestore/manage-data/add-data?authuser=0#update_fields_in_nested_objects –

関連する問題