इसे बहुत सरलता से कहें तो, फायरबेस एक बाहरी डेटाबेस सेवा है। वे स्वयं को इस प्रकार परिभाषित करते हैं:
अधिक जानकारी के लिए "बैक-एंड क्लाउड कंप्यूटिंग सेवाओं और Google द्वारा प्रदान किए गए एप्लिकेशन डेवलपमेंट प्लेटफ़ॉर्म का एक सेट" यहां देखें: https://firebase.google.com/
डेटाबेस सेवाओं के अलावा वे विभिन्न अनुप्रयोगों के लिए प्रमाणीकरण और एकीकरण सेवाएं भी प्रदान करते हैं। समर्थित एप्लिकेशन और प्रोग्रामिंग भाषाएं हैं: स्पंदन, डार्ट, सी ++, एंड्रॉइड, आईओएस, जावास्क्रिप्ट , यूनिटी इंजन और जावा।
यह सब क्यों मायने रखता है? क्योंकि हमने अपने एप्लिकेशन के विकास में फायरबेस का इस्तेमाल किया। इतना ही नहीं बल्कि हमने इसकी सबसे लोकप्रिय सेवा का उपयोग किया: यह डेटाबेस सेवा है।
हम पूछ सकते हैं कि Firebase का उपयोग क्यों करें? फायरबेस आसान है । किसी भी प्रकार की विकास परियोजना करते समय जिसके लिए आपको उपयोगकर्ता डेटा को कुछ रूपों में सहेजने की आवश्यकता होगी, तब आपको एक डेटाबेस की आवश्यकता होगी। यह बाद के विश्लेषण, डेटा संशोधन, डेटा सुरक्षा, डेटा बहाली आदि के लिए उपयोगकर्ता डेटा को स्टोर करने के लिए हो सकता है। यह कंपनियों, व्यक्तियों और संगठनों, यहां तक कि अधिक समूहों पर भी लागू होता है।
अब जब हम जानते हैं कि हम डेटाबेस का उपयोग क्यों करते हैं तो हमें अगला प्रश्न पूछना चाहिए। हमारे लिए कौन से डेटाबेस प्रकार बेहतर हैं?
आइए इन अंतरों का पता लगाएं। जबकि हम ऐसा करते हैं, कोशिश करें और अनुमान लगाएं कि कौन सा डेटाबेस प्रकार फायरबेस में आता है;)।
केंद्रीकृत डेटाबेस : यह तब होता है जब एप्लिकेशन के लिए उपयोग किए जा रहे डेटाबेस को ऐसे स्थान पर संग्रहीत किया जाता है जहां इसका उपयोग करने वाले व्यक्तियों की सीधी भौतिक पहुंच होती है। वे अपनी इच्छा के अनुसार डेटाबेस को संपादित, सुधार, अद्यतन और पुनर्निर्माण भी कर सकते हैं। अनिवार्य रूप से, आपके पास भौतिक, आंतरिक और डिजिटल बुनियादी ढांचे के संदर्भ में सभी तरह से डेटाबेस का पूर्ण स्वामित्व और संपादन-क्षमता है।
विकेंद्रीकृत डेटाबेस : यह केंद्रीकृत डेटाबेस के पूर्ण विपरीत है। वे वेब 3 आधारित डेटाबेस हैं। वे डेटाबेस हैं जहां स्टोरेज डिवाइस विभिन्न कंप्यूटिंग डिवाइसों में फैले हुए हैं। केवल विशिष्ट संगठन ही डेटाबेस की आंतरिक कार्यक्षमता को अनुकूलित और सुधार सकते हैं। उनके उपयोग के मामले सीमित हैं। वे ज्यादातर वेब3 ऐप्स, टोकन और अन्य वेब3 उत्पादों की मेजबानी के लिए बने हैं।
वेब3 डेटाबेस के बारे में अधिक जानकारी के लिए जो उन्हें पूरी तरह से एक्सप्लोर करता है, यहां देखें: https://www.makeuseof.com/what-is-web3-storage-how-does-it-work/
DBaaS : इस डेटाबेस प्रकार को अक्सर "सर्वर रहित" कहा जाता है। ऐसा इसलिए है क्योंकि इस डेटाबेस प्रकार के साथ, जो केंद्रीकृत डेटाबेस के समान है, आप डेटाबेस को अपने पास स्थानीय रूप से नहीं रखते हैं। डेटाबेस को तीसरे भाग की कंपनी के माध्यम से होस्ट किया जाता है और वे आपको अपने डेटाबेस के कुछ डिजिटल इंफ्रास्ट्रक्चर को अनुकूलित करने की अनुमति देते हैं लेकिन इससे ज्यादा कुछ नहीं। इस डेटाबेस का मुख्य विक्रय बिंदु लागत प्रभावशीलता है। अपने स्वयं के केंद्रीकृत डेटाबेस बनाने के लिए धन की कमी के बजाय आप प्रयासों को आउटसोर्स करने का विकल्प चुनते हैं। कोई गंदा निर्माण कार्य करता है और आप उनकी डेटाबेस सेवाओं का उपयोग करने के लिए उनसे किराए पर ले सकते हैं। आपको अलग-अलग पे-टियर स्तरों के लिए अलग-अलग कार्यक्षमता मिलती है।
मैंने DBaaS का उपयोग करने का विकल्प चुना। फायरबेस एक DBaaS है। इस डेटाबेस मॉडल की लागत प्रभावी प्रकृति के कारण मैंने इसे चुना।
मैं एक ऐप बना रहा हूं। ऐप के कार्यों में से एक उपयोगकर्ताओं को पंजीकृत करने, साइन-इन करने और साइन-आउट करने की क्षमता है। जैसा कि आप ऊपर चित्र में देख सकते हैं मैंने साइन-अप करने के लिए एक परीक्षण उपयोगकर्ता नाम और एक परीक्षण पासवर्ड बनाया है। एक बार जब मैंने "साइन-अप" बटन दबाया तो ऐप ने मेरे संबंधित डेटाबेस को सूचना भेज दी। डेटाबेस को फायरबेस में होस्ट किया जा रहा है। साइन-अप का प्रयास करने पर मैं उसी ऐप पेज पर बना रहा और कुछ भी नहीं बदला। मेरे फायरबेस में उपयोगकर्ताओं की जाँच के बाद उस समय कोई नया उपयोगकर्ता पंजीकृत नहीं था। इसका मतलब है कि मेरा उपयोगकर्ता पंजीकृत नहीं था।
नए उपयोगकर्ताओं को पहचानने के लिए हमें अपने ऐप की आवश्यकता है। इस स्तर पर एक डेवलपर अपने कोड को देखेगा और फायरबेस के लिए एप्लिकेशन प्रोसेसिंग इंटरफेस (एपीआई) को देख सकता है और यह देख सकता है कि उन्होंने इसे अपने कोड में कैसे कहा। वे उन चरों को भी देखेंगे जो उपयोगकर्ताओं को यह सुनिश्चित करने के लिए परिभाषित करते हैं कि यह ठीक से परिभाषित है और कार्यक्षमता अच्छी है। वे यह देखने के लिए भी जांच कर सकते हैं कि डेटाबेस से कनेक्शन के साथ हस्तक्षेप या इंटरैक्ट करने वाली किसी भी चीज़ को अद्यतन करने की आवश्यकता है, जैसे कि उपयोग की गई लाइब्रेरी या स्वयं फायरबेस एपीआई लिंक। हमारी कॉलों को अनदेखा करते हुए डेटाबेस का समाधान खोजने के लिए कोई भी इन सभी चरणों या अधिक कर सकता है। एक समस्या है।
इनमें से कोई भी मुझ पर लागू नहीं होता । ऐसा क्यों है?
मुझे इन मानक डिबगिंग प्रथाओं में से कोई भी नहीं करने का कारण यह है कि इस नए प्रयास से कुछ समय पहले, मैं नए उपयोगकर्ताओं को डेटाबेस में पंजीकृत करने में सक्षम था। एक सप्ताह के भीतर यह अचानक बंद हो गया। मेरे किसी भी कोड को बदले बिना जो प्रक्रिया पहले काम करती थी वह अब काम नहीं कर रही थी। इसने मुझे बहुत भ्रमित किया और मैंने बार-बार अपने एपीआई कॉल लिंक को बदल दिया और इसे विभिन्न क्षेत्रों में डाल दिया। मैंने अपने पुस्तकालयों के लिए और मेरी अलग-अलग फ़ाइल कॉलों के लिए अपनी संदर्भ कॉलों का आयोजन किया। मैं यह पूछने के लिए ऑनलाइन भी गया था कि क्या फायरबेस की डेटाबेस सेवा डाउन थी। यह मामला नहीं था। मैं तब मानक डिबगिंग प्रथाओं को शुरू करने वाला था… .. तब मुझे आखिरकार इसका हल मिल गया ! यह हमेशा मेरे ईमेल में था।
हाँ, मेरे ईमेल में इस समय का समाधान था! इस मुद्दे पर ठहराव के दिनों के बाद मेरे ईमेल की जाँच करने पर, मुझे फायरबेस से एक सूचना ईमेल मिली। फायरबेस ने मुझे सूचित किया कि मेरा डेटाबेस एक्सेस काट दिया गया है। ऐसा इसलिए था क्योंकि फायरबेस डेटाबेस सेटअप के दौरान मैंने सुरक्षा उद्देश्यों के लिए एक निश्चित तिथि पर अपने डेटाबेस एक्सेस को काटने के लिए सेटअप किया था। मैं अपने लिए जोड़े गए इस नियम के बारे में भूल गया था। मैं निर्दिष्ट तिथि के बारे में भूल गया था। नतीजतन जब मुझे काट दिया गया तो मैंने अपना ईमेल चेक करने तक ध्यान नहीं दिया। नीचे हम देख सकते हैं कि मैंने 12 मार्च 2023 को मुझे काटने के लिए डेटाबेस सेट किया है।
इस समस्या को ठीक करने के लिए मुझे अपनी "कट-ऑफ" तिथि के लिए समय सीमा बढ़ाने के लिए नियमों को अपडेट करने की आवश्यकता है। जैसा कि यहाँ देखा गया है:
इस मुद्दे को हल करने के लिए मैंने अगली समय सीमा 29 जून रखी। इस तरह मुझे उस समय सीमा तक फिर से कोई रुकावट नहीं आएगी।
कोई पूछ सकता है " क्यों न इसे अभी से कुछ वर्षों या अब से अधिक महीनों के लिए सेट कर दिया जाए ताकि आप इससे परेशान न हों?" अच्छा प्रश्न। मैं ऐसा नहीं करूंगा क्योंकि मुझे इस निर्भरता की याद दिलाने के लिए साल भर में कुछ त्रैमासिक अनुस्मारक चाहिए। मैं इसे एक लंबी अवधि की समय सीमा के लिए निर्धारित नहीं करना चाहता हूं और फिर इसे फिर से भूल जाऊं और एक साल बाद उसी स्थिति में फंस जाऊं। मेरे मस्तिष्क में इसे बार-बार सचेत करने का मतलब होगा कि मैं लगातार उन सभी कारकों के बारे में सोच रहा हूं जो ऐप के विकास को प्रभावित कर सकते हैं जो विकास प्रक्रिया को जारी रखने में सहायक होंगे। कोई इसे सीखने की प्राथमिकता कह सकता है।
हम देख सकते हैं कि फायरबेस ऑथेंटिकेशन प्रक्रिया उपयोगकर्ता आईडी टोकन को उपयोगकर्ता विशेष पहचानकर्ता के रूप में भी लौटाती है, इस तरह हम निश्चित रूप से जानते हैं कि यह पंजीकृत है।
विकास मजेदार है, लेकिन हमें हमेशा छोटी-छोटी बातों के प्रति सचेत रहना होगा। ज्यादातर बार जब एप्लिकेशन के साथ समस्याएं होती हैं तो यह हमारे अपने कोड त्रुटि के कारण सबसे अधिक संभावना होती है। हालाँकि, कभी-कभी समस्याएँ हमारे कोड से भी नहीं आ सकती हैं। यह वास्तव में एक आवश्यक अद्यतन के रूप में सरल कुछ हो सकता है या इस मामले में, सरल डेटाबेस नियमों की समीक्षा।