2015-11-18 11 views
5

firebase Firebase टिप्पणी से:अपडेट कर रहा है नेस्टेड वस्तुओं

को देखते हुए एक भी कुंजी पथ alanisawesome की तरह, पहले बच्चे के स्तर पर updateChildren() केवल अद्यतन डाटा, और पहले बच्चे स्तर से परे में पारित किसी भी डेटा एक एक setValue() के रूप में व्यवहार किया जाता है ऑपरेशन। मल्टी-पथ व्यवहार डेटा को ओवरराइट किए बिना लंबे पथ (जैसे alanisawesome/nickname) की अनुमति देता है। यही कारण है कि पहला उदाहरण दूसरे उदाहरण से अलग है।

मैं अपने कोड में एक एकल फ़ंक्शन createOrUpdateData(object) का उपयोग करने का प्रयास कर रहा हूं। अद्यतन के मामले में, यह पहले स्तर के बच्चों को सही तरीके से अपडेट करता है, लेकिन अगर मैंने नेस्टेड ऑब्जेक्ट पास किया है, तो यह उस नेस्टेड ऑब्जेक्ट के सभी अन्य गुणों को हटा देता है।

function saveUserDetails(email,object){ 
     var hashedEmail = Utilities.getHashCode(email); 
     var userRef = ref.child(hashedEmail); 
     return $q(function(resolve,reject){ 
      return userRef.update(object, function(error){ 
       if(error){ 
        reject(error); 
       }else{ 
        resolve("Updated successfully!"); 
       } 
      }); 
     }); 
    } 

तो अगर मैं पारित:

{ 
    name: 'Rohan Dalvi', 
    externalLinks: { 
     website: 'mywebsite' 
    } 
} 

तो यह externalLinks ऑब्जेक्ट के अंदर अन्य संपत्तियों को नष्ट करेगा

कोड यह रहा। क्या इससे बचने का एक साफ और आसान तरीका है?

संक्षेप में, मैं कैसे सुनिश्चित कर सकता हूं कि नेस्टेड ऑब्जेक्ट्स केवल अपडेट किए गए हैं और डेटा हटाया नहीं गया है।

+0

क्या मेरा उत्तर मदद मिली? –

+0

हाय @ डेविडएस्ट, धन्यवाद यह काम करता है! हालांकि मैंने नेस्टेड ऑब्जेक्ट के अंदर एक सरणी को अपडेट करने का प्रयास नहीं किया है। –

उत्तर

9

आप बहु-पथ अपडेट का उपयोग कर सकते हैं।

var userRef = ref.child(hashedEmail); 
var updateObject = { 
    name: 'Rohan Dalvi', 
    "externalLinks/website": 'mywebsite' 
}; 
userRef.update(updateObject); 

वस्तु शाब्दिक यह एक अद्यतन और नहीं के रूप में नेस्टेड वस्तु के लिए एक निर्धारित नेस्ट पथ व्यवहार करेगा में "externalLinks/website" वाक्य रचना का उपयोग करके। यह नेस्टेड डेटा को हटाए जाने से रोकता है।

+0

शानदार! धन्यवाद! – jpunk11

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