में एक आदेशित सूची का प्रदर्शन यदि मैं फायरबेस में एक आदेशित सूची को बनाए रखना चाहता हूं, तो ऐसा लगता है कि ऐसा करने का सबसे अच्छा तरीका है मेरी सूची में प्रत्येक आइटम को मैन्युअल रूप से प्राथमिकता देना। इसका मतलब है कि अगर मैं सूची से किसी आइटम को सम्मिलित या हटा देता हूं, तो मुझे इसके बाद सभी वस्तुओं की प्राथमिकताओं को अपडेट करना होगा। सूची की शुरुआत में किसी आइटम के लिए, इसका मतलब सूची में प्रत्येक आइटम को अपडेट करना है। क्या इस मामले में उपयोग करने के लिए एक बेहतर प्रदर्शन डेटा संरचना या एल्गोरिदम है?फायरबेस
फायरबेस
उत्तर
आप उचित रूप से तत्वों की प्राथमिकता निर्धारित करके एक आदेशित सूची बना सकते हैं। किसी सूची में आइटम को प्राथमिकता से लेक्सिग्राफिक रूप से आदेश दिया जाता है, या यदि प्राथमिकता संख्या से, प्राथमिकता को किसी संख्या में पार्स किया जा सकता है।
यदि आप मौजूदा सूची के बीच में आइटम डालना चाहते हैं, तो मौजूदा वस्तुओं की प्राथमिकताओं को संशोधित करना काम करेगा, लेकिन यह बेहद अक्षम होगा। एक बेहतर तरीका केवल उन दो वस्तुओं के बीच प्राथमिकता चुनना है जहां आप मूल्य डालना चाहते हैं और नई वस्तु के लिए प्राथमिकता निर्धारित करते हैं।
उदाहरण के लिए, यदि आपके पास प्राथमिकता "ए" के साथ तत्व 1 था, और प्राथमिकता "बी" के साथ तत्व 2 था, तो आप प्राथमिकता "aa" (या "aq", "az" के साथ दोनों के बीच तत्व 3 डाल सकते हैं, आदि)।
हमारे अनुभव में, जब आप एक आदेशित सूची बनाते हैं, तो आपको उस सूची में स्थिति की आवश्यकता नहीं होती है जिसे आप पहले आइटम को सम्मिलित करना चाहते हैं। उदाहरण के लिए, यदि आप किसी गेम के लिए लीडर बोर्ड बना रहे हैं, तो आप पहले से नहीं जानते कि आप सूची में एक नया स्कोर तीसरे स्थान पर रखना चाहते हैं, बल्कि आप जानते हैं कि आप इसे किसी भी स्थिति स्कोर 10000 पर प्राप्त करना चाहते हैं (जो तीसरा हो सकता है)। इस मामले में, केवल स्कोर को प्राथमिकता निर्धारित करने से यह पूरा हो जाएगा। हमारे लीडर बोर्ड उदाहरण यहां देखें: https://www.firebase.com/tutorial/#example-leaderboard
इतनी जल्दी प्रतिक्रिया देने के लिए धन्यवाद। इस मामले में मैं एक ड्रैग-एंड-ड्रॉप सूची बनाना चाहता हूं, इसलिए ऑर्डरिंग उपयोगकर्ता द्वारा परिभाषित की गई है। मुझे दो वांछित वस्तुओं के बीच प्राथमिकता डालने का विचार पसंद है, लेकिन मैं एक चीज़ पर फंस गया हूं: आप कैसे जानते हैं कि अगला आइटम क्या है जब आप 'child_added' कॉलबैक का उपयोग कर रहे हों? आपको केवल पिछली वस्तु मिलती है, न कि उसके बाद। –
क्या आपको कभी भी मनमानी-आदेश सूची, @RadfordSmith के लिए एक अच्छा समाधान मिला? –
रूबी मणि ranked_model इस समस्या का एक दिलचस्प दृष्टिकोण है। यह कई अन्य "सूची के रूप में कार्य करता है" कार्यान्वयन की स्थिति पूर्णांक का उपयोग करता है, लेकिन यह प्रत्येक स्थिति की चाल पर सभी पूर्णांक को फिर से लिखने पर निर्भर नहीं है। इसके बजाए, यह पूर्णांक को व्यापक रूप से अलग करता है, और इसलिए प्रत्येक अपडेट केवल एक या दो पंक्तियों को प्रभावित कर सकता है। यह दृष्टिकोण देखने के लिए कि क्या यह दृष्टिकोण यहां फिट हो सकता है, रीडेमे और कोड को देखकर लायक हो सकता है।
- 1. फायरबेस .NET एक्सेस
- 2. फायरबेस और इंडेक्सिंग/सर्च
- 3. फायरबेस के साथ सत्र प्रबंधन?
- 4. फायरबेस - कैशिंग प्रदर्शन में सुधार करता है?
- 5. फायरबेस: लेनदेन में कैसे धक्का देना है?
- 6. फायरबेस कैसे मूल मूल मुद्दों को संभालता है?
- 7. फायरबेस के साथ नोडजेस का उपयोग करना - सुरक्षा
- 8. उपयोगकर्ताओं के समूह में फायरबेस स्थानों तक पहुंच प्रदान करना
- 9. क्या मैं फायरबेस सेट() को मौजूदा डेटा को ओवरराइट करने से रोक सकता हूं?
- 10. फ़ायरबेस - एपीआई कुंजी
- 11. फायरबेस में जेसन डेटा प्रारूप - सरणी समर्थित हैं? और/या, अगर केवल ऑब्जेक्ट्स समर्थित हैं, तो शब्दकोशों को पूर्णांक के साथ क्रमांकित किया जा सकता है?
- 12. पता लगाएं कि क्या फ़ायरबेस कनेक्शन गुम हो गया है/वापस प्राप्त किया गया है
- 13. क्या फ़ायरबेस Geospatial करते हैं?
- 14. फ़ायरबेस का उपयोग करके आप प्रभावी ढंग से त्रुटियों को कैसे संभाल सकते हैं या कैसे कर सकते हैं?
- 15. क्या कोई रीयलटाइम पुशर प्रकार सेवाएं हैं जो सर्वर बैकएंड के लिए शुद्ध वेबसाईट का उपयोग करती हैं?
- 16. क्रोम एक्सटेंशन पृष्ठभूमि में फ़ायरबेस प्रमाणीकरण पृष्ठ
- 17. प्राथमिकता
मैंने इसे बेहतर डी के लिए पूछने के लिए संपादित किया। या एल्गोरिदम - एकमात्र उचित जवाब "क्या यह पर्याप्त तेज़ है?" क्या "क्या आपने इसे प्रोफाइल किया है?" – djechlin
सॉर्टिंग के लिए एल्गोरिदम क्या है? वर्णमाला? न्यूमेरिकल? टाइमस्टैम्प द्वारा? मैं खुद को फायरबेस के बारे में घबराहट के सवालों के बारे में सोचता हूं और आम तौर पर वांछित व्यवहार की पहचान करने के बाद उन्हें हल करना बहुत आसान होता है। – Kato