Firebase
डेटा मॉडल बदलने के लिए सबसे अच्छा तरीका क्या है जबकि आपके उत्पादन में आपके आईओएस ऐप के कई संस्करण हैं?फायरबेस डेटा मॉडल बदलना (जबकि एकाधिक ऐप संस्करण उत्पादन में हैं)
चूंकि मध्य में कोई 'एप्लिकेशन सर्वर' परत नहीं है, इसलिए डेटाबेस मॉडल में कोई भी परिवर्तन ऐप के पुराने संस्करणों को तोड़ सकता है।
प्रदर्शन संबंधित समस्या का उदाहरण:
संस्करण 1.0 मैं भोलेपन के तहत एक पोस्ट '/ पदों /' से संबंधित सब कुछ रखने गया था। अब संस्करण 2.0 में मैं फायरबेस की सिफारिश लेना चाहता हूं और किसी दिए गए उपयोगकर्ता के लिए सभी पोस्टों को त्वरित रूप से सूचीबद्ध करने के लिए '/ user-post' एंडपॉइंट जोड़ना चाहता हूं।
आईओएस ऐप के संस्करण 1.0 का उपयोग करने वाले लोग '/ user-posts' पर कोई भी डेटा नहीं लिख रहे हैं क्योंकि उस एंडपॉइंट का अस्तित्व नहीं था। संस्करण 2.0 का उपयोग करने वाले लोग इसलिए ऐप के पुराने संस्करण का उपयोग करके लोगों द्वारा बनाई गई कोई भी पोस्ट नहीं देखते हैं।
सिद्धांत रूप में मैं कहीं भी एक सर्वर बना सकता हूं जो '/ post /' पर परिवर्तनों को सुनता है और उन्हें '/ user-posts' में भी जोड़ता है। ऐसा लगता है कि समय के साथ बनाए रखना मुश्किल है, हालांकि यदि आपके ऐप के बहुत सारे संस्करण हैं।
समस्या की नई सुविधा उदाहरण:
चलें अपने मोबाइल एप्लिकेशन के संस्करण 1.0 में कहते हैं कि तुम को नए ब्लॉग पोस्ट लिखने '/ पदों /'। अब आपके ऐप के संस्करण 2.0 में आप एक टीम सुविधा पेश करते हैं और सभी पोस्टों को '/ टीम/टीम-आईडी/पोस्ट' में होना आवश्यक है।
जो लोग संस्करण 2.0 में अपग्रेड नहीं किए गए हैं वे अभी भी '/ पोस्ट' पर लिखेंगे। वे पोस्ट संस्करण 2.0 का उपयोग करने वाले लोगों के लिए दृश्यमान नहीं होंगे जो '/ टीम/टीम-आईडी/पोस्ट' से पढ़ रहे हैं।
मुझे एहसास है कि आप दोनों अंतराल को एक साथ रख सकते हैं (और टीम आईडी पर आधारित इंडेक्स/पोस्ट) लेकिन समय के साथ यह बनाए रखना मुश्किल लगता है।
पारंपरिक समाधान:
अगर मैं कुछ Django या एक्सप्रेस जैसे मैं एक डेटाबेस प्रवास करना चाहते हैं और फिर ब्लॉगपोस्ट बनाने के लिए सर्वर साइड अंतिम बिंदुओं को अद्यतन उपयोग कर रहे थे।
इससे ग्राहकों से डेटाबेस में परिवर्तन आएंगे। मैं सिद्धांत में Firebase
के साथ मेरी वास्तुकला के लिए एक आवेदन-सर्वर स्तरीय जोड़ सकता है, लेकिन यह नहीं लगता है जैसे कि यह अनुशंसा की जाती है: https://firebase.googleblog.com/2013/03/where-does-firebase-fit-in-your-app.html
के माध्यम से एक संदेश/अलर्ट दिखा सकते हैं, हालांकि मैं आपके वर्तमान ऐप में माइग्रेट या माइग्रेट करने के तरीके पर टिप्पणी नहीं कर सकता हूं। भविष्य में तार्किक स्थिरांक लागू करना होगा और फायरबेस रिमोट कॉन्फ़िगर कुछ डेटा संरचना परिवर्तनों को कम करने का एक तरीका हो सकता है। वैकल्पिक रूप से, उपयोगकर्ताओं को नए संस्करण में जाने के लिए प्रोत्साहित करने के लिए कुछ तंत्र का उपयोग करें यदि यह संभव है। शायद नई सुविधाएं उपलब्ध कराकर ... –