मैं अपने सिर को लपेटने की कोशिश कर रहा हूं कि फायरबेस रीयलटाइम डेटाबेस के लिए मेरे डेटा को कैसे व्यवस्थित किया जाए।फ़ायरबेस रीयलटाइम डेटाबेस के लिए डेटा संरचना को सामान्य/सामान्य कैसे करें?
- डेटा संभव के रूप में फ्लैट पर लिखता सस्ते
- से बचने के घोंसले डेटा
- से डेटा का डुप्लिकेट पढ़ता है करने के लिए
- महंगा हो जाना चाहिए: मैं इतना निम्न सलाह खोजने पर docs और कुछ अन्य सवालों को पढ़ने ठीक हो सकता है
इसे ध्यान में रखते हुए मुझे अपने विशिष्ट उपयोग मामले का वर्णन करने दें। ,
- प्रथम
- अंतिम नाम
- प्रोफ़ाइल चित्र (बड़ा)
- प्रोफ़ाइल चित्र (छोटे)
एक उपयोगकर्ता एक कहानी बना सकते हैं: Frist निम्न विशेषताओं वाला उपयोगकर्ता है जिसमें निम्नलिखित विशेषताएं शामिल हैं:
- उपयोगकर्ता
- पाठ
- टाइमस्टैम्प
एक कहानी के दृश्य प्रतिनिधित्व कुछ ऐसा दिखाई देगा:
मेरा प्रश्न है, आप कैसे सहयोगी उपयोगकर्ता जानकारी (firstname होगा , आखिरी नाम, छोटी प्रोफ़ाइल तस्वीर) एक कहानी के साथ?
क्या मैं के बारे में सोचा:
कहानी है कि विशिष्ट उपयोगकर्ता के लिए विदेशी आईडी में शामिल है में एक user_id डाल दिया। कहानी को लोड करने के लिए हमें डेटाबेस के लिए दो अनुरोध करना होगा, एक कहानी प्राप्त करने के लिए और उपयोगकर्ता के लिए एक।
{ user_id: 'XYZ', पाठ: 'foobar', टाइमस्टैम्प: ... }
डाल firstname, कहानी में उपनाम और छोटे प्रोफ़ाइल तस्वीर। कहानी प्रदर्शित करने के लिए केवल एक अनुरोध आवश्यक होगा। लेकिन हमें प्रत्येक उपयोगकर्ता की कहानी अपडेट करना होगा, जब उदा। प्रोफ़ाइल तस्वीर बदलती है।
{ user_id: 'XYZ', firstname: 'सैंड्रा', lastname: '' एडम्स, smallProfilePicutre: '...', पाठ: 'foobar', टाइमस्टैम्प: ... }
तो जब वहाँ कुछ बनाया कहानियाँ हैं और ज्यादातर समय वहाँ सिर्फ पढ़ता है, दृष्टिकोण 1. महंगा हो सकता है, क्योंकि हम दो के लिए भुगतान एक कहानी प्रदर्शित करने के लिए पढ़ता है। दृष्टिकोण 2. अधिक लागत प्रभावी होगा।
मैं यहां इस पर आपके विचार और विचारों को देखना चाहता हूं।
मुझे लगता है कि आपको बहुत कुछ है। दो विकल्प, कहानी में उपयोगकर्ता के लिए एक संदर्भ स्टोर, उपयोगकर्ता जानकारी प्राप्त करने के लिए फायरबेस के लिए दो कॉल। या, कहानी में डुप्लिकेट उपयोगकर्ता डेटा स्टोर करें, 1 कॉल यह सब करता है। हालांकि, विकल्प 2 के साथ डेटा को बनाए रखना बहुत कठिन है। मान लीजिए कि उपयोगकर्ता अपनी तस्वीर बदलता है, आपको उन सभी कहानियों के लिए पूछना होगा जहां उन्हें दिखाई देता है और उन्हें अपडेट किया जाता है। एक 'छोटे' डेटासेट के लिए जो ठीक है, एक बड़े डेटासेट के लिए यह अनावश्यक हो सकता है। फायरबेस बहुत तेज है इसलिए विकल्प 1 शायद इस उपयोग के मामले में जाने का सबसे अच्छा तरीका है। आपको वास्तव में कुछ कोड लिखना चाहिए और दोनों मामलों को आजमाएं। – Jay
महान टिप्पणी जय! इसे एक उत्तर के रूप में पोस्ट करने जैसा लगता है, तो मैं इसे ऊपर उठा सकता हूं? :-) –
मैंने इस उद्देश्य के लिए फायरबेस क्लाउड फ़ंक्शंस के साथ खिलवाड़ किया है। आप normalizeUserProfile_Stories() नामक एक फ़ंक्शन बना सकते हैं जो उपयोगकर्ता प्रोफ़ाइल में परिवर्तनों को देखता है और कहानियों नोड के अंतर्गत उन विशेषताओं को अपडेट करता है। फिर आप क्लाइंट साइड से डेटाबेस में कई नोड्स को लिखने के बारे में चिंता किए बिना अपना एकल पढ़ सकते हैं। मुझे लगता है कि क्लाउड फ़ंक्शंस डेटा अखंडता को बनाए रखने और इस तरह के कार्य को ऐप से ही हटाने के लिए अच्छा है। – Shai