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

इस विषय के लिए, स्थानीय इम्यूलेटर सूट वर्कफ़्लो पेश करने के लिए, मान लें कि आप एक ऐसे ऐप पर काम कर रहे हैं जो उत्पादों के एक विशिष्ट संयोजन का उपयोग करता है: एक फायरबेस डेटाबेस और उस डेटाबेस पर संचालन द्वारा ट्रिगर किए गए क्लाउड फ़ंक्शन।
आपके द्वारा अपने फायरबेस प्रोजेक्ट को स्थानीय रूप से आरंभ करने के बाद, स्थानीय एमुलेटर सूट का उपयोग करने वाले विकास चक्र में आमतौर पर तीन चरण होंगे:
प्रोटोटाइप एमुलेटर और एमुलेटर सूट यूआई के साथ अंतःक्रियात्मक रूप से सुविधाएँ।
यदि आप एक डेटाबेस एमुलेटर या क्लाउड फ़ंक्शंस एमुलेटर का उपयोग कर रहे हैं, तो अपने ऐप को एमुलेटर से जोड़ने के लिए एक बार का कदम उठाएं।
एमुलेटर और कस्टम स्क्रिप्ट के साथ अपने परीक्षणों को स्वचालित करें।
स्थानीय रूप से एक Firebase प्रोजेक्ट को इनिशियलाइज़ करें
सुनिश्चित करें कि आपने सीएलआई स्थापित किया है या इसके नवीनतम संस्करण में अपडेट किया है ।
curl -sL firebase.tools | bash
यदि आपने पहले से ऐसा नहीं किया है, तो वर्तमान कार्यशील निर्देशिका को फायरबेस प्रोजेक्ट के रूप में प्रारंभ करें, यह निर्दिष्ट करने के लिए ऑनस्क्रीन संकेतों का पालन करें कि आप क्लाउड फ़ंक्शंस और या तो क्लाउड फायरस्टोर या रीयलटाइम डेटाबेस का उपयोग कर रहे हैं:
firebase init
आपकी प्रोजेक्ट निर्देशिका में अब फायरबेस कॉन्फ़िगरेशन फ़ाइलें, डेटाबेस के लिए एक फायरबेस सुरक्षा नियम परिभाषा फ़ाइल, क्लाउड फ़ंक्शंस कोड वाली एक functions
निर्देशिका और अन्य सहायक फ़ाइलें होंगी।
प्रोटोटाइप इंटरैक्टिव
लोकल इम्यूलेटर सूट आपको नई सुविधाओं को जल्दी से प्रोटोटाइप करने के लिए डिज़ाइन किया गया है, और सूट का अंतर्निर्मित यूजर इंटरफेस इसके सबसे उपयोगी प्रोटोटाइप टूल में से एक है। यह फायरबेस कंसोल को स्थानीय रूप से चलाने जैसा है।
एम्यूलेटर सूट यूआई का उपयोग करके, आप डेटाबेस के डिजाइन को दोहरा सकते हैं, क्लाउड फ़ंक्शंस से जुड़े विभिन्न डेटा प्रवाहों को आज़मा सकते हैं, सुरक्षा नियमों में बदलाव का मूल्यांकन कर सकते हैं, यह पुष्टि करने के लिए लॉग की जांच कर सकते हैं कि आपकी बैक-एंड सेवाएं कैसा प्रदर्शन कर रही हैं, और बहुत कुछ। फिर, यदि आप शुरू करना चाहते हैं, तो बस अपना डेटाबेस साफ़ करें और एक नए डिज़ाइन विचार के साथ नए सिरे से शुरुआत करें।
जब आप स्थानीय इम्यूलेटर सुइट को निम्न के साथ प्रारंभ करते हैं तो यह सब उपलब्ध होता है:
firebase emulators:start
हमारे काल्पनिक ऐप को प्रोटोटाइप करने के लिए, डेटाबेस में टेक्स्ट प्रविष्टियों को संशोधित करने के लिए एक बुनियादी क्लाउड फ़ंक्शन सेट अप और परीक्षण करें, और दोनों उस डेटाबेस को इम्यूलेटर सुइट UI में ट्रिगर करने के लिए बनाएं और पॉप्युलेट करें।
- अपनी प्रोजेक्ट डायरेक्टरी में
functions/index.js
फाइल को एडिट करके डेटाबेस राइट्स द्वारा ट्रिगर किया गया क्लाउड फंक्शन बनाएं। मौजूदा फ़ाइल की सामग्री को निम्न स्निपेट से बदलें। यह फ़ंक्शनmessages
संग्रह में दस्तावेज़ों में परिवर्तनों को सुनता है, दस्तावेज़ केoriginal
फ़ील्ड की सामग्री को अपरकेस में कनवर्ट करता है, और परिणाम को उस दस्तावेज़ केuppercase
फ़ील्ड में संग्रहीत करता है। -
firebase emulators:start
। क्लाउड फ़ंक्शंस और डेटाबेस एमुलेटर शुरू हो जाते हैं, स्वचालित रूप से इंटरऑपरेट करने के लिए कॉन्फ़िगर किए जाते हैं। - अपने ब्राउज़र में UI को
http://localhost:4000
पर देखें। पोर्ट 4000 यूआई के लिए डिफ़ॉल्ट है, लेकिन फायरबेस सीएलआई द्वारा टर्मिनल संदेशों के आउटपुट की जांच करें। उपलब्ध एमुलेटर की स्थिति पर ध्यान दें। हमारे मामले में, क्लाउड फ़ंक्शंस और क्लाउड फायरस्टार एमुलेटर चल रहे होंगे।
- UI में, Firestore > Data टैब पर, संग्रह प्रारंभ करें पर क्लिक करें और
messages
संग्रह में एक नया दस्तावेज़ बनाने के लिए संकेतों का पालन करें, फ़ील्ड नामoriginal
और मूल्यtest
के साथ। यह हमारे क्लाउड फंक्शन को ट्रिगर करता है। ध्यान दें कि शीघ्र ही एक नयाuppercase
फ़ील्ड प्रकट होता है, जो स्ट्रिंग "TEST" से भर जाता है।
- Firestore > Requests टैब पर, उन अनुरोधों को पूरा करने के हिस्से के रूप में किए गए सभी Firebase सुरक्षा नियमों के मूल्यांकन सहित, अपने नकली डेटाबेस के लिए किए गए अनुरोधों की जांच करें।
- यह पुष्टि करने के लिए लॉग टैब की जांच करें कि आपका फ़ंक्शन त्रुटियों में नहीं चला क्योंकि यह डेटाबेस को अपडेट करता है।
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}); });
आप अपने क्लाउड फ़ंक्शन कोड और इंटरेक्टिव डेटाबेस संपादनों के बीच आसानी से पुनरावृति कर सकते हैं जब तक कि आप इन-ऐप डेटाबेस एक्सेस कोड को छुए बिना, परीक्षण सूट को फिर से चलाने और फिर से चलाने के बिना डेटा प्रवाह प्राप्त कर रहे हैं।
अपने ऐप को एमुलेटर से कनेक्ट करें
जब आप इंटरैक्टिव प्रोटोटाइप के साथ अच्छी प्रगति कर लेते हैं और एक डिज़ाइन पर स्थिर हो जाते हैं, तो आप उपयुक्त एसडीके का उपयोग करके अपने ऐप में डेटाबेस एक्सेस कोड जोड़ने के लिए तैयार होंगे। यह पुष्टि करने के लिए कि आपके ऐप का व्यवहार सही है, आप डेटाबेस टैब और, फ़ंक्शंस के लिए, इम्यूलेटर सुइट UI में लॉग टैब का उपयोग करना जारी रखेंगे।
याद रखें कि स्थानीय इम्यूलेटर सूट एक स्थानीय विकास उपकरण है। आपके उत्पादन डेटाबेस में लिखे गए कार्यों को आप स्थानीय रूप से प्रोटोटाइप कर रहे कार्यों को ट्रिगर नहीं करेंगे।
अपने ऐप को डेटाबेस में लिखने के लिए स्विच करने के लिए, आपको क्लाउड फायरस्टोर एमुलेटर पर अपनी टेस्ट क्लास या इन-ऐप कॉन्फ़िगरेशन को इंगित करने की आवश्यकता होगी।
Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. val firestore = Firebase.firestore firestore.useEmulator("10.0.2.2", 8080) firestore.firestoreSettings = firestoreSettings { isPersistenceEnabled = false }
Java
// 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 modular API
import { getFirestore, connectFirestoreEmulator } from "firebase/firestore"; // firebaseApps previously initialized using initializeApp() const db = getFirestore(); connectFirestoreEmulator(db, 'localhost', 8080);
Web namespaced API
// 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"
अधिक गहराई में अलग-अलग एमुलेटर का अन्वेषण करें
अब जब आपने देखा है कि मूल क्लाइंट-साइड वर्कफ़्लो कैसा दिखता है, तो आप सूट में अलग-अलग एमुलेटर के बारे में विवरण जारी रख सकते हैं, जिसमें सर्वर-साइड ऐप डेवलपमेंट के लिए उनका उपयोग कैसे करना शामिल है:
- अपने प्रोटोटाइप वर्कफ्लो में ऑथेंटिकेशन इम्यूलेटर जोड़ें
- रीयलटाइम डेटाबेस इम्यूलेटर सुविधाओं के बारे में गहराई से जानें
- Firebase एमुलेटर सुविधाओं के लिए क्लाउड स्टोरेज के बारे में गहराई से जानें
- क्लाउड फायरस्टोर एम्यूलेटर सुविधाओं के बारे में गहराई से जानें
- अपने ऐप को क्लाउड फ़ंक्शंस एमुलेटर से कनेक्ट करें
- एक्सटेंशन एमुलेटर के साथ बिलिंग लागत को कम करते हुए फायरबेस एक्सटेंशन का मूल्यांकन करें
आगे क्या?
ऊपर जुड़े विशिष्ट एमुलेटर से संबंधित विषयों को पढ़ना सुनिश्चित करें। तब:
- वीडियो के क्युरेट किए गए सेट और विस्तृत कैसे करें उदाहरणों के लिए, Firebase Emulators प्रशिक्षण प्लेलिस्ट का अनुसरण करें।
- सुरक्षा नियमों के परीक्षण और फायरबेस टेस्ट एसडीके: टेस्ट सिक्योरिटी रूल्स (क्लाउड फायरस्टोर) , टेस्ट सिक्योरिटी रूल्स (रीयलटाइम डेटाबेस) और टेस्ट सिक्योरिटी रूल्स (फायरबेस के लिए क्लाउड स्टोरेज) से जुड़े उन्नत उपयोग मामलों की जांच करें।