अपना ऐप कनेक्ट करें और प्रोटोटाइप करना शुरू करें

इससे पहले कि आप फायरबेस लोकल एमुलेटर सूट के साथ कूदें, सुनिश्चित करें कि आपने एक फायरबेस प्रोजेक्ट बनाया है, अपना विकास पर्यावरण सेट किया है, और अपने प्लेटफॉर्म के लिए फायरबेस एसडीके को अपने प्लेटफॉर्म के लिए फायरबेस विषयों के साथ शुरू करें के अनुसार चुना और स्थापित किया है: ऐप्पल , एंड्रॉइड या वेब

प्रोटोटाइप और परीक्षण

स्थानीय एमुलेटर सूट में कई उत्पाद अनुकरणकर्ता होते हैं, जैसा कि फायरबेस स्थानीय एमुलेटर सूट का परिचय में वर्णित है। आप अलग-अलग अनुकरणकर्ताओं के साथ-साथ अनुकरणकर्ताओं के संयोजन के साथ प्रोटोटाइप और परीक्षण कर सकते हैं, जैसा कि आप फिट देखते हैं, जो आप उत्पादन में उपयोग किए जा रहे फायरबेस उत्पादों के अनुरूप हैं।

Firebase dstabase और फ़ंक्शन एमुलेटर के बीच सहभागिता
डाटाबेस और क्लाउड फंक्शंस एम्यूलेटर पूर्ण स्थानीय एम्यूलेटर सूट के हिस्से के रूप में।

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

अपने Firebase प्रोजेक्ट को स्थानीय रूप से प्रारंभ करने के बाद, स्थानीय एमुलेटर सूट का उपयोग करने वाले विकास चक्र में आमतौर पर तीन चरण होंगे:

  1. प्रोटोटाइप एमुलेटर और एमुलेटर सूट UI के साथ अंतःक्रियात्मक रूप से सुविधाएँ देता है।

  2. यदि आप डेटाबेस एमुलेटर या क्लाउड फ़ंक्शंस एमुलेटर का उपयोग कर रहे हैं, तो अपने ऐप को एमुलेटर से कनेक्ट करने के लिए एक बार का कदम उठाएं।

  3. एमुलेटर और कस्टम स्क्रिप्ट के साथ अपने परीक्षणों को स्वचालित करें।

स्थानीय रूप से एक फायरबेस प्रोजेक्ट प्रारंभ करें

सुनिश्चित करें कि आपने सीएलआई स्थापित किया है या इसके नवीनतम संस्करण में अपडेट किया है

curl -sL firebase.tools | bash

यदि आपने पहले से ऐसा नहीं किया है, तो वर्तमान कार्यशील निर्देशिका को फायरबेस प्रोजेक्ट के रूप में प्रारंभ करें, ऑनस्क्रीन संकेतों का पालन करके यह निर्दिष्ट करें कि आप क्लाउड फ़ंक्शंस और क्लाउड फायरस्टोर या रीयलटाइम डेटाबेस का उपयोग कर रहे हैं:

firebase init

आपकी प्रोजेक्ट निर्देशिका में अब Firebase कॉन्फ़िगरेशन फ़ाइलें, डेटाबेस के लिए एक Firebase सुरक्षा नियम परिभाषा फ़ाइल, क्लाउड फ़ंक्शन कोड वाली functions निर्देशिका और अन्य सहायक फ़ाइलें शामिल होंगी।

अंतःक्रियात्मक रूप से प्रोटोटाइप

स्थानीय एमुलेटर सूट आपको नई सुविधाओं को जल्दी से प्रोटोटाइप करने के लिए डिज़ाइन किया गया है, और सूट का अंतर्निहित यूजर इंटरफेस इसके सबसे उपयोगी प्रोटोटाइप टूल में से एक है। यह फ़ायरबेस कंसोल को स्थानीय रूप से चलाने जैसा है।

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

जब आप इसके साथ स्थानीय एमुलेटर सूट शुरू करते हैं तो यह सब उपलब्ध होता है:

firebase emulators:start

हमारे काल्पनिक ऐप को प्रोटोटाइप करने के लिए, आइए डेटाबेस में टेक्स्ट प्रविष्टियों को संशोधित करने के लिए एक बुनियादी क्लाउड फ़ंक्शन को सेट अप और परीक्षण करें, और इसे ट्रिगर करने के लिए एमुलेटर सूट UI में उस डेटाबेस को बनाएं और पॉप्युलेट करें।

  1. अपनी प्रोजेक्ट निर्देशिका में functions/index.js फ़ाइल को संपादित करके डेटाबेस द्वारा ट्रिगर किए गए क्लाउड फ़ंक्शन बनाएं। मौजूदा फ़ाइल की सामग्री को निम्न स्निपेट से बदलें। यह फ़ंक्शन messages पदानुक्रम में नोड्स में परिवर्तन के लिए सुनता है, नोड की original संपत्ति की सामग्री को अपरकेस में परिवर्तित करता है, और परिणाम को उस नोड की uppercase संपत्ति में संग्रहीत करता है।
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
          .onCreate((snapshot, context) => {
            const original = snapshot.val();
            console.log('Uppercasing', context.params.pushId, original);
            const uppercase = original.toUpperCase();
            return snapshot.ref.parent.child('uppercase').set(uppercase);
          });
      
  3. firebase emulators:start । क्लाउड फ़ंक्शंस और डेटाबेस एमुलेटर शुरू होते हैं, स्वचालित रूप से इंटरऑपरेट करने के लिए कॉन्फ़िगर किए जाते हैं।
  4. http://localhost:4000 पर अपने ब्राउज़र में UI देखें। पोर्ट 4000 यूआई के लिए डिफ़ॉल्ट है, लेकिन फायरबेस सीएलआई द्वारा टर्मिनल संदेश आउटपुट की जांच करें। उपलब्ध एमुलेटर की स्थिति पर ध्यान दें। हमारे मामले में, क्लाउड फ़ंक्शंस और रीयलटाइम डेटाबेस एमुलेटर चल रहे होंगे।
    मेरी छवि
  5. UI में, रीयलटाइम डेटाबेस टैब पर, संदेश 1 नोड वाले messages नोड के साथ message1 का एक सेट बनाने के लिए डेटाबेस सामग्री संपादक नियंत्रण का उपयोग करें, बदले में original पर सेट कुंजी के साथ एक नोड और test के लिए मान सेट होता है। यह हमारे क्लाउड फ़ंक्शन को ट्रिगर करता है। ध्यान दें कि एक नया uppercase गुण शीघ्र ही प्रकट होता है, जिसका मान TEST है।
    मेरी छविमेरी छवि
  6. यह पुष्टि करने के लिए लॉग टैब की जाँच करें कि आपका फ़ंक्शन इनोट त्रुटियों को नहीं चलाता है क्योंकि यह डेटाबेस को अपडेट करता है।

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

अपने ऐप को एमुलेटर से कनेक्ट करें

जब आपने इंटरेक्टिव प्रोटोटाइप के साथ अच्छी प्रगति की है और एक डिज़ाइन पर बस गए हैं, तो आप उपयुक्त एसडीके का उपयोग करके अपने ऐप में डेटाबेस एक्सेस कोड जोड़ने के लिए तैयार होंगे। आप यह पुष्टि करने के लिए कि आपके ऐप का व्यवहार सही है, आप डेटाबेस टैब और कार्यों के लिए, Emulator Suite UI में लॉग टैब का उपयोग करते रहेंगे।

याद रखें कि स्थानीय एमुलेटर सूट एक स्थानीय विकास उपकरण है। आपके उत्पादन डेटाबेस को लिखने से उन कार्यों को ट्रिगर नहीं किया जाएगा जिन्हें आप स्थानीय रूप से प्रोटोटाइप कर रहे हैं।

अपने ऐप को डेटाबेस में लिखने के लिए स्विच करने के लिए, आपको रीयलटाइम डेटाबेस एमुलेटर पर अपनी परीक्षण कक्षाओं या इन-ऐप कॉन्फ़िगरेशन को इंगित करना होगा।

एंड्रॉयड
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        database.useEmulator("10.0.2.2", 9000);
तीव्र
    // In almost all cases the ns (namespace) is your project ID.
let db = Database.database(url:"http://localhost:9000?ns=YOUR_DATABASE_NAMESPACE")

Web version 9

import { getDatabase, connectDatabaseEmulator } from "firebase/database";

const db = getDatabase();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  connectDatabaseEmulator(db, "localhost", 9000);
} 

Web version 8

var db = firebase.database();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  db.useEmulator("localhost", 9000);
} 

कस्टम स्क्रिप्ट के साथ अपने परीक्षण स्वचालित करें

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

firebase emulators:exec "./testdir/test.sh"

अलग-अलग एमुलेटर का अधिक गहराई से अन्वेषण करें

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

आगे क्या?

ऊपर लिंक किए गए विशिष्ट एमुलेटर से संबंधित विषयों को पढ़ना सुनिश्चित करें। फिर: