दिलचस्प पोस्ट
आर में क्या मतलब है – निजी प्राथमिकता, नामकरण सम्मेलन या अधिक? प्रतिस्थापना कॉल में एक से अधिक वर्णों को बदलें मैं एक साधारण वेब प्रोजेक्ट में एक .MDF (माइक्रोसॉफ्ट एसक्यूएल सर्वर डाटाबेस फाइल) से कैसे जुड़ूं? स्वामित्व वाली वस्तु की विधि के लिए अस्थायी स्वयं संदर्भ पास करना उपयोगकर्ता द्वारा दर्ज स्ट्रिंग को कैसे पढ़ें मैं एंड्रॉइड प्रोग्रेसबार को डिटेक्टिव मोड में कैसे उपयोग करूँ? यह ऑब्जेक्ट संदर्भ से पारित क्यों नहीं किया जाता है, जब यह कुछ और बताएगा? need_once () या मर () काम नहीं कर रहा है कैसे Firebase डेटा संशोधन को प्रतिबंधित करने के लिए? EditorFor () और html गुण क्या लग सकता है कि किन भाषाओं को नियमित अभिव्यक्ति से मिलान किया जा सकता है? क्लास पुस्तकालय के साथ app.config का उपयोग करना डीआईवी में वेबसाइट लोड करें कंसोल विंडो प्रदर्शित किए बिना, stdout पर कब्जा करने के लिए VBscript कोड क्या मैं matplotlib में लाइन शैलियों के माध्यम से चक्र कर सकता हूँ?

Firebase में एक सरणी के लिए अतुल्यकालिक पहुंच

यहां मेरा कोड है:

var userRef = new Firebase("https://awesome.firebaseio.com/users/"); var tokenRef = userRef.child(key+'/tokens'); tokenRef.once('value', function(snapshot){ var userTokenSync = $firebase(tokenRef); var userTokens = userTokenSync.$asArray(); console.log(userTokens); console.log(userTokens[0]); for(var i=0, len = userTokens.length; i < len; i++) { console.log(userTokens[i]); } console.log('done'); }) 

यह कोड किसी उपयोगकर्ता के टोकन को फायरबसे से मिलता है, और मैं टोकन सरणी को ब्राउज़ करना चाहता हूं।

कंसोल मुझे यह बताता है:

यहां छवि विवरण दर्ज करें

जैसा कि आप देख सकते हैं, मैं सरणी का उपयोग नहीं कर सकता। क्या आपको यह पता है कि मैं यह कैसे कर सकता हूं?

अग्रिम में धन्यवाद।

Solutions Collecting From Web of "Firebase में एक सरणी के लिए अतुल्यकालिक पहुंच"

एसिंक्रोनस लोडिंग 101 में आपका स्वागत है

  var userTokens = userTokenSync.$asArray(); console.log(userTokens); console.log(userTokens[0]); for(var i=0, len = userTokens.length; i < len; i++) { console.log(userTokens[i]); } console.log('done'); 

इस स्निपेट की पहली पंक्ति अपने डेटा को फायरबसे से लोड करना शुरू कर देती है । लेकिन यह लोड करने में कुछ समय लग सकता है और चूंकि ब्राउज़र चीजों को ब्लॉक नहीं करना चाहता है, इसलिए यह स्क्रिप्ट निष्पादित जारी है।

जब तक ब्राउज़र आपके console.log(userTokens); निष्पादित करता है console.log(userTokens); सबसे ज्यादा संभावना अभी तक लोड नहीं हुई है। इसलिए यह ऑब्जेक्ट को प्लेसहोल्डर के रूप में कंसोल में प्रिंट करता है।

जब तक यह लूप के for हो जाता है, तब तक डेटा फ़ायरबेज से लोड हो सकता है या नहीं।

कुछ बिंदु पर आपने लॉग-इन userTokens पास तीर क्लिक किया। उस समय तक डेटा फायरबेज से लोड हुआ था और कंसोल नवीनतम डेटा दिखाता है।

समाधान एक वादा के रूप में, कोणीय फायर द्वारा प्रदान किया गया है। कोणीयफायर भविष्य में किसी बिंदु पर वादा करता है कि आपके लिए डेटा है यदि आपके पास कोड का एक टुकड़ा है जो डेटा को लोड होने पर ही निष्पादित किया जाना चाहिए, तो आप इसे इस तरह लिख सकते हैं:

  var userTokens = userTokenSync.$asArray(); console.log(userTokens); console.log(userTokens[0]); userTokens.$loaded(function(userTokens) { for(var i=0, len = userTokens.length; i < len; i++) { console.log(userTokens[i]); } console.log('done'); }); console.log('at last line, but not done yet'); 

अद्यतन करें

ध्यान दें कि ऊपर $loaded जाने के लिए ऊपर का एक बुरा उदाहरण है। चूंकि $loaded केवल एक बार आग लग जाएगी, यह केवल सरणी की प्रारंभिक सामग्री को लॉग करेगा यदि आप बस यह देखने की कोशिश कर रहे हैं कि / जब आपका डेटा लोड हो रहा है, मुहावरेदार दृष्टिकोण userTokens को दायरे में जोड़ना है:

 $scope.userTokens = userTokens; 

और इसे अपने दृश्य / HTML में जोड़ें:

 <pre>{{ userTokens | json }}</pre> 

AngularFire अब जब उपयोगकर्ताटोकेंस किसी भी तरह से लोड या संशोधित हो जाएगा, तब मॉनिटर करेगा और यदि ऐसा होता है तो दृश्य को अपडेट करने के लिए AngularJS को बताएगा।

यह भी देखें:

  • फायरबसे, एंजरीजेएस और जियोफ़ायर – कारखाने से प्रतिक्रिया की प्रतीक्षा करें
  • फायरबेज कोनोबलफ़ायर बच्चे। $ AsObject गुण देना अनिर्धारित
  • कोणीय फायर – मैं एआरआरए के रूप में एआरआरए द्वारा क्यों वापस लौट नहीं सकता?
  • कॉलबैक फ़ंक्शन के लिए अभिभावकीय क्षेत्र में वैरिएबल पास करना
  • Firebase से बाल रिकॉर्ड प्राप्त करने की कोशिश कर रहा है

हां … हम इस प्रश्न को बहुत कुछ मिलते हैं।