Firebase Local Emulator Suite का इस्तेमाल शुरू करने से पहले, पक्का करें कि आपने Firebase प्रोजेक्ट बनाया हो, डेवलपमेंट एनवायरमेंट सेट अप किया हो, और अपने प्लैटफ़ॉर्म के लिए Firebase SDK टूल चुने और इंस्टॉल किए हों. इसके लिए, Apple, Android या वेब जैसे प्लैटफ़ॉर्म के लिए, Firebase का इस्तेमाल शुरू करना विषयों के हिसाब से काम करें.
प्रोटोटाइप बनाना और जांच करना
Local Emulator Suite में कई प्रॉडक्ट एमुलेटर होते हैं, जैसा कि Firebase Local Emulator Suite के बारे में जानकारी में बताया गया है. प्रोटोटाइप बनाने और जांच करने के लिए, अलग-अलग एमुलेटर के साथ-साथ एमुलेटर के कॉम्बिनेशन का इस्तेमाल किया जा सकता है. यह इस बात पर निर्भर करता है कि प्रोडक्शन में किन Firebase प्रॉडक्ट का इस्तेमाल किया जा रहा है.
इस विषय के लिए, Local Emulator Suite वर्कफ़्लो के बारे में बताने के लिए, मान लें कि आप ऐसे ऐप्लिकेशन पर काम कर रहे हैं जो प्रॉडक्ट के सामान्य कॉम्बिनेशन का इस्तेमाल करता है: Firebase डेटाबेस और उस डेटाबेस पर किए गए ऑपरेशन से ट्रिगर होने वाले क्लाउड फ़ंक्शन.
अपने Firebase प्रोजेक्ट को लोकल तौर पर शुरू करने के बाद, Local Emulator Suite का इस्तेमाल करके डेवलपमेंट साइकल में आम तौर पर ये तीन चरण होते हैं:
एम्युलेटर और Emulator Suite UI के साथ, प्रोटोटाइप सुविधाएं इंटरैक्टिव तरीके से जोड़ी गई हैं.
अगर डेटाबेस एमुलेटर या Cloud Functions एमुलेटर का इस्तेमाल किया जा रहा है, तो अपने ऐप्लिकेशन को एमुलेटर से कनेक्ट करने के लिए, एक बार यह तरीका अपनाएं.
एमुलेटर और कस्टम स्क्रिप्ट की मदद से, अपने टेस्ट अपने-आप होने की सुविधा चालू करें.
स्थानीय तौर पर Firebase प्रोजेक्ट शुरू करना
पक्का करें कि आपने सीएलआई इंस्टॉल किया हो या इसे सबसे नए वर्शन पर अपडेट किया हो.
curl -sL firebase.tools | bash
अगर आपने अभी तक ऐसा नहीं किया है, तो मौजूदा डायरेक्ट्री को Firebase प्रोजेक्ट, स्क्रीन पर दिए गए निर्देशों का पालन करके यह बताता है कि आप इसका इस्तेमाल कर रहे हैं Cloud Functions और Cloud Firestore या Realtime Database:
firebase init
आपकी प्रोजेक्ट डायरेक्ट्री में अब Firebase कॉन्फ़िगरेशन फ़ाइलें शामिल होंगी,
डेटाबेस के लिए Firebase Security Rules डेफ़िनिशन फ़ाइल, एक functions
डायरेक्ट्री
जिसमें क्लाउड फ़ंक्शन कोड और काम करने वाली अन्य फ़ाइलें शामिल हों.
इंटरैक्टिव तरीके से प्रोटोटाइप बनाना
Local Emulator Suite को इस तरह से डिज़ाइन किया गया है कि आप नई सुविधाओं को तेज़ी से प्रोटोटाइप कर सकें, और सुइट का बिल्ट-इन यूज़र इंटरफ़ेस इसके सबसे उपयोगी प्रोटोटाइपिंग में से एक है टूल. यह कुछ हद तक स्थानीय तौर पर Firebase कंसोल चलाने जैसा है.
Emulator Suite UI का इस्तेमाल करके, डेटाबेस के डिज़ाइन को दोहराया जा सकता है. साथ ही, क्लाउड फ़ंक्शन वाले अलग-अलग डेटाफ़्लो आज़माए जा सकते हैं, सुरक्षा नियमों में हुए बदलावों का आकलन किया जा सकता है, और बैक-एंड सेवाओं की परफ़ॉर्मेंस की पुष्टि करने के लिए लॉग देखे जा सकते हैं. इसके बाद, अगर आपको फिर से शुरू करना है, तो बस अपना डेटाबेस मिटाएं और नए डिज़ाइन आइडिया के साथ फिर से शुरू करें.
Local Emulator Suite की शुरुआत करने पर, ये सभी सुविधाएं उपलब्ध होती हैं:
firebase emulators:start
अपने काल्पनिक ऐप्लिकेशन का प्रोटोटाइप बनाने के लिए, डेटाबेस में टेक्स्ट एंट्री में बदलाव करने के लिए, एक बुनियादी क्लाउड फ़ंक्शन सेट अप और टेस्ट करें. साथ ही, Emulator Suite UI में उस डेटाबेस को बनाएं और उसमें डेटा भरें, ताकि उसे ट्रिगर किया जा सके.
- डेटाबेस में बदलाव करके ट्रिगर किया गया क्लाउड फ़ंक्शन बनाएं
functions/index.js
फ़ाइल है. मौजूदा फ़ाइल के कॉन्टेंट को, यहां दिए गए स्निपेट से बदलें. यह फ़ंक्शन,messages
कलेक्शन में मौजूद दस्तावेज़ों में हुए बदलावों को सुनता है. साथ ही, किसी दस्तावेज़ केoriginal
फ़ील्ड के कॉन्टेंट को अपरकेस में बदलता है और नतीजे को उस दस्तावेज़ केuppercase
फ़ील्ड में सेव करता है. firebase emulators:start
का इस्तेमाल करके Local Emulator Suite को लॉन्च करें. Cloud Functions और डेटाबेस एमुलेटर, इंटरऑपरेट करने के लिए अपने-आप कॉन्फ़िगर होकर शुरू हो जाते हैं.http://localhost:4000
पर जाकर, अपने ब्राउज़र में यूज़र इंटरफ़ेस (यूआई) देखें. यूज़र इंटरफ़ेस (यूआई) के लिए पोर्ट 4000 डिफ़ॉल्ट तौर पर सेट होता है. हालांकि, Firebase सीएलआई से टर्मिनल मैसेज आउटपुट की जांच करें. उपलब्ध एम्युलेटर की स्थिति को नोट करें. हमारे मामले में, Cloud Functions और Cloud Firestore एमुलेटर चल रहे होंगे.
- यूज़र इंटरफ़ेस (यूआई) में, Firestore > डेटा टैब पर क्लिक करें,
कलेक्शन शुरू करें और दिए गए निर्देशों का पालन करके,
messages
कलेक्शन, जिसका फ़ील्ड नामoriginal
और वैल्यू हैtest
. इससे हमारा क्लाउड फ़ंक्शन ट्रिगर होता है. देखें कि कुछ समय बाद एक नयाuppercase
फ़ील्ड दिखेगा, जिसमें स्ट्रिंग "TEST" अपने-आप भर जाएगी.
- Firestore > पर जाएं अनुरोध टैब पर क्लिक करके, अपने एम्युलेट किया गया डेटाबेस, जिसमें सभी Firebase Security Rules आकलन शामिल हैं उन अनुरोधों को पूरा करने के लिए किया जा सकता है.
- लॉग टैब देखकर पुष्टि करें कि आपके फ़ंक्शन में कोई गड़बड़ी नहीं हुई क्योंकि इसने डेटाबेस को अपडेट किया.
const functions = require('firebase-functions/v1'); 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}); });
जब तक आपको अपनी पसंद का डेटा फ़्लो नहीं मिल जाता, तब तक अपने क्लाउड फ़ंक्शन कोड और इंटरैक्टिव डेटाबेस में किए गए बदलावों के बीच आसानी से स्विच किया जा सकता है. इसके लिए, आपको ऐप्लिकेशन में मौजूद डेटाबेस ऐक्सेस कोड में बदलाव करने, टेस्ट सुइट को फिर से कंपाइल करने, और फिर से चलाने की ज़रूरत नहीं है.
अपने ऐप्लिकेशन को एम्युलेटर से कनेक्ट करें
जब आपने इंटरैक्टिव प्रोटोटाइपिंग के साथ अच्छी प्रोग्रेस कर ली हो और सेटल हो गए हों डिज़ाइन है, तो आप इसका उपयोग करके अपने ऐप्लिकेशन में डेटाबेस ऐक्सेस कोड जोड़ सकते हैं सही SDK टूल का इस्तेमाल करें. आपको डेटाबेस टैब का इस्तेमाल करना जारी रखना होगा. साथ ही, फ़ंक्शन के लिए, Emulator Suite UI में लॉग टैब का इस्तेमाल करना होगा. इससे यह पक्का किया जा सकेगा कि आपका ऐप्लिकेशन सही तरीके से काम कर रहा है.
याद रखें कि Local Emulator Suite एक लोकल डेवलपमेंट टूल है. लिखना आपके डेटाबेस में, उन फ़ंक्शन को ट्रिगर नहीं करेगा जिनका प्रोटोटाइप बनाया जा रहा है स्थानीय रूप से.
अगर आप चाहते हैं कि आपका ऐप्लिकेशन, डेटाबेस में बदलाव करे, तब आपको डेटाबेस में बदलाव करने होंगे आपके टेस्ट क्लास या ऐप्लिकेशन के अंदर कॉन्फ़िगरेशन को Cloud Firestore पर दिखाने के लिए एम्युलेटर.
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);
Swift
let settings = Firestore.firestore().settings settings.host = "127.0.0.1:8080" settings.cacheSettings = MemoryCacheSettings() settings.isSSLEnabled = false Firestore.firestore().settings = settings
Web
import { getFirestore, connectFirestoreEmulator } from "firebase/firestore"; // firebaseApps previously initialized using initializeApp() const db = getFirestore(); connectFirestoreEmulator(db, '127.0.0.1', 8080);
Web
// Firebase previously initialized using firebase.initializeApp(). var db = firebase.firestore(); if (location.hostname === "localhost") { db.useEmulator("127.0.0.1", 8080); }
कस्टम स्क्रिप्ट की मदद से, अपने टेस्ट अपने-आप चलने की सुविधा चालू करना
अब वर्कफ़्लो का आखिरी चरण. सुविधा को प्रोटोटाइप करने के बाद
इन-ऐप्लिकेशन खरीदारी करता है और आपके सभी प्लैटफ़ॉर्म पर बढ़िया लगता है. ऐसे में, अपनी पसंद के हिसाब से
और उनकी जांच करना. यूनिट टेस्टिंग और सीआई वर्कफ़्लो के लिए, exec
कमांड की मदद से एक ही कॉल में एमुलेटर शुरू किए जा सकते हैं, स्क्रिप्ट वाली टेस्टिंग की जा सकती है, और एमुलेटर बंद किए जा सकते हैं:
firebase emulators:exec "./testdir/test.sh"
अलग-अलग एम्युलेटर के बारे में ज़्यादा जानें
अब जब आपने देख लिया है कि बुनियादी क्लाइंट-साइड वर्कफ़्लो कैसा दिखता है, तो सुइट में मौजूद एम्युलेटर की पूरी जानकारी का इस्तेमाल करें. इसमें यह जानकारी भी शामिल है कि ताकि सर्वर साइड ऐप्लिकेशन डेवलपमेंट के लिए उनका इस्तेमाल किया जा सके:
- Authentication एम्युलेटर को अपने प्रोटोटाइपिंग वर्कफ़्लो में जोड़ें
- Realtime Database एम्युलेटर की सुविधाओं के बारे में ज़्यादा जानें
- Cloud Storage for Firebase एमुलेटर की सुविधाओं के बारे में ज़्यादा जानें
- Cloud Firestore एमुलेटर की सुविधाओं के बारे में ज़्यादा जानें
- अपने ऐप्लिकेशन को Cloud Functions एम्युलेटर से कनेक्ट करना
- Extensions एमुलेटर की मदद से बिलिंग की लागत को कम करते हुए, Firebase Extensions का आकलन करना
आगे क्या करना है?
ऊपर लिंक किए गए खास एम्युलेटर से जुड़े विषयों को ज़रूर पढ़ें. इसके बाद:
- चुनिंदा वीडियो के सेट और इस्तेमाल करने के तरीकों की ज़्यादा जानकारी के लिए, Firebase एम्युलेटर ट्रेनिंग प्लेलिस्ट देखें.
- सुरक्षा नियमों की जांच और Firebase Test SDK टूल के इस्तेमाल के बेहतर उदाहरणों की जांच करें: सुरक्षा नियमों की जांच करें (Cloud Firestore), सुरक्षा नियमों की जांच करें (Realtime Database), और सुरक्षा नियमों की जांच करें (Cloud Storage for Firebase).