2017-11-14 34 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 –

संबंधित मुद्दे