Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

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

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

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

अपने 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.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. firebase emulators:start । क्लाउड फ़ंक्शंस और डेटाबेस एमुलेटर शुरू होते हैं, स्वचालित रूप से इंटरऑपरेट करने के लिए कॉन्फ़िगर किए जाते हैं।
  4. http://localhost:4000 पर अपने ब्राउज़र में UI देखें। पोर्ट 4000 यूआई के लिए डिफ़ॉल्ट है, लेकिन फायरबेस सीएलआई द्वारा टर्मिनल संदेश आउटपुट की जांच करें। उपलब्ध एमुलेटर की स्थिति पर ध्यान दें। हमारे मामले में, क्लाउड फ़ंक्शंस और क्लाउड फायरस्टोर एमुलेटर चल रहे होंगे।
    मेरी छवि
  5. UI में, फायरस्टोर> डेटा टैब पर, संग्रह प्रारंभ करें पर क्लिक करें और messages संग्रह में फ़ील्डनाम original और मूल्य test के साथ एक नया दस्तावेज़ बनाने के लिए संकेतों का पालन करें। यह हमारे क्लाउड फ़ंक्शन को ट्रिगर करता है। ध्यान दें कि एक नया uppercase फ़ील्ड शीघ्र ही प्रकट होता है, जो "TEST" स्ट्रिंग से भरा होता है।
    मेरी छविमेरी छवि
  6. Firestore > Requests टैब पर, उन अनुरोधों को पूरा करने के हिस्से के रूप में किए गए सभी Firebase सुरक्षा नियमों के मूल्यांकन सहित, अपने एमुलेटेड डेटाबेस से किए गए अनुरोधों की जांच करें।
  7. यह पुष्टि करने के लिए लॉग टैब की जाँच करें कि आपका फ़ंक्शन त्रुटियों में नहीं चला क्योंकि इसने डेटाबेस को अपडेट किया था।

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

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

जब आपने इंटरेक्टिव प्रोटोटाइप के साथ अच्छी प्रगति की है और एक डिज़ाइन पर बस गए हैं, तो आप उपयुक्त एसडीके का उपयोग करके अपने ऐप में डेटाबेस एक्सेस कोड जोड़ने के लिए तैयार होंगे। आप यह पुष्टि करने के लिए कि आपके ऐप का व्यवहार सही है, आप डेटाबेस टैब और कार्यों के लिए, 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.
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.useEmulator("10.0.2.2", 8080);

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build();
firestore.setFirestoreSettings(settings);
तीव्र
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web version 9

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, 'localhost', 8080);

Web version 8

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

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

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

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

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

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

आगे क्या?

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