5

मैं अपनी खुद की जावास्क्रिप्ट क्लाइंट लाइब्रेरी बनाने के बारे में सोच रहा हूं, और मुझे फायरबेस प्रारूप अनुरोधों को पसंद है। मैं समझने की कोशिश कर रहा हूं कि क्या हो रहा है। वेब गाइड here को देख से मैं नीचे दिए गए कोड मिला:नकली फायरबेस ग्राहक पुस्तकालय की संरचना और पैटर्न

var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog"); 

var usersRef = ref.child("users"); 

usersRef.set({ 

    alanisawesome: { 
     date_of_birth: "June 23, 1912", 
     full_name: "Alan Turing" 
    }, 

    gracehop: { 
     date_of_birth: "December 9, 1906", 
     full_name: "Grace Hopper" 
    } 

}); 

मैं देख सकता हूँ कि ref एक समारोह Firebase कहा जाता है के बराबर है, और usersRefref.child के बराबर है।

मैं कुछ इस तरह की कल्पना कर रहा हूँ:

Firebase = function(url) { 
    this.child = function(path) { 

    console.log(url); 
    console.log(path); 

}; 
}; 

यहाँ मैं देख सकता हूँ कि usersRef.set बुलाया जा रहा है, लेकिन मैं बाहर कैसे या जहां इस जाना होगा समझ नहीं सकता? set एक फ़ंक्शन या ऑब्जेक्ट है? मुझे लगता है कि फायरबेस में set(), update(), push() और transaction() है, जो मुझे लगता है कि ये कार्य हैं।

"TypeError: Cannot read property 'set' of undefined 

शायद मैं गलत रास्ते पर हूं, मैं इस पैटर्न से परिचित नहीं हूं।

+1

@Drenmi कि संपादित करने के लिए धन्यवाद, ऐसा लगता है और ज्यादा बेहतर पढ़ता है। – Bill

+0

'बच्चे() 'को' ऑब्जेक्ट '/' अपडेट'/... विधि के साथ किसी ऑब्जेक्ट को वापस करने की आवश्यकता है, जैसे' नया फायरबेस 'एक' बच्चे 'विधि के साथ ऑब्जेक्ट देता है। – Bergi

+0

@ बर्गि आपके उत्तर के लिए धन्यवाद, मैं अभी आपके सुझाव के चारों ओर अपना सिर नहीं ले सकता, क्या आप अब तक का सबसे अच्छा अनुमान बढ़ाकर आगे बढ़ने में मदद कर सकते हैं। – Bill

उत्तर

1

यदि आप फायरबेस एपीआई की जांच करते हैं, तो आप देखेंगे कि child() बच्चे के स्थान पर एक नया फ़ायरबेस संदर्भ देता है। इस तरह तो कुछ:

var Firebase = function(url) { 

    console.log(url); 

    this.child = function(path) { 
     return new Firebase(url+'/'+path); 
    }; 

    this.set = function(object) { 
     console.log(object); 
    }; 

}; 

मैं नवीनीकृत किया है आप jsbin: https://jsbin.com/nucume/2/edit?js,console

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