Firebase Hosting एम्युलेटर की मदद से, अपने वेब ऐप्लिकेशन का प्रोटोटाइप बनाने और उसकी जांच करने से पहले, पक्का करें कि आपने Firebase Local Emulator Suite के पूरे वर्कफ़्लो को समझ लिया हो. साथ ही, आपने Local Emulator Suite को इंस्टॉल और कॉन्फ़िगर कर लिया हो और इसकी सीएलआई कमांड देख ली हों.
आपको Firebase Hosting की सुविधाओं और लागू करने के वर्कफ़्लो के बारे में भी जानकारी होनी चाहिए. Firebase Hosting के बारे में जानकारी से शुरू करें.
Firebase Hosting एम्युलेटर की मदद से क्या-क्या किया जा सकता है?
Firebase Hosting एम्युलेटर, Hosting सेवाओं का लोकल एम्युलेशन उपलब्ध कराता है. इससे प्रोडक्शन Hosting में मिलने वाली ज़्यादातर सुविधाएं मिलती हैं. Hosting एम्युलेटर की मदद से ये काम किए जा सकते हैं:
- स्टोरेज या ऐक्सेस के लिए शुल्क दिए बिना, अपनी स्टैटिक साइटों और वेब ऐप्लिकेशन का प्रोटोटाइप बनाएं
- अपनी होस्टिंग साइट पर डिप्लॉय करने से पहले, एचटीटीपीएस फ़ंक्शन का प्रोटोटाइप बनाएं, उनकी जांच करें, और उन्हें डीबग करें
- कंटेनर में रखे गए, लगातार इंटिग्रेट किए जाने वाले वर्कफ़्लो में साइटों और वेब ऐप्लिकेशन की जांच करें.
कोई Firebase प्रोजेक्ट चुनना
Firebase Local Emulator Suite, एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट की नकल करता है.
इस्तेमाल किए जाने वाले प्रोजेक्ट को चुनने के लिए, एम्युलेटर शुरू करने से पहले, अपनी वर्किंग डायरेक्ट्री में CLI चलाएं.firebase use
इसके अलावा, हर एम्युलेटर कमांड में --project
फ़्लैग पास किया जा सकता है.
Local Emulator Suite, असली Firebase प्रोजेक्ट और डेमो प्रोजेक्ट के इम्यूलेशन के साथ काम करता है.
प्रोजेक्ट का टाइप | सुविधाएं | एम्युलेटर के साथ इस्तेमाल करना |
---|---|---|
रियल |
असली Firebase प्रोजेक्ट वह होता है जिसे आपने बनाया और कॉन्फ़िगर किया है. ऐसा ज़्यादातर Firebase कंसोल के ज़रिए किया जाता है. असली प्रोजेक्ट में लाइव संसाधन होते हैं. जैसे, डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन या Firebase प्रोजेक्ट के लिए सेट अप किया गया कोई अन्य संसाधन. |
असली Firebase प्रोजेक्ट के साथ काम करते समय, किसी भी या सभी प्रॉडक्ट के लिए एम्युलेटर चलाए जा सकते हैं. जिन प्रॉडक्ट के लिए इम्यूलेशन नहीं किया जा रहा है उनके लिए, आपके ऐप्लिकेशन और कोड, लाइव रिसोर्स (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन वगैरह) के साथ इंटरैक्ट करेंगे. |
डेमो |
डेमो Firebase प्रोजेक्ट में, असली Firebase कॉन्फ़िगरेशन नहीं होता है. साथ ही, इसमें लाइव संसाधन भी नहीं होते हैं. इन प्रोजेक्ट को आम तौर पर कोडलैब या अन्य ट्यूटोरियल के ज़रिए ऐक्सेस किया जाता है. डेमो प्रोजेक्ट के आईडी में |
Firebase के डेमो प्रोजेक्ट के साथ काम करते समय, आपके ऐप्लिकेशन और कोड सिर्फ़ एम्युलेटर के साथ इंटरैक्ट करते हैं. अगर आपका ऐप्लिकेशन किसी ऐसे संसाधन से इंटरैक्ट करने की कोशिश करता है जिसके लिए कोई एम्युलेटर नहीं चल रहा है, तो वह कोड काम नहीं करेगा. |
हमारा सुझाव है कि जहां भी हो सके वहां डेमो प्रोजेक्ट का इस्तेमाल करें. इसके ये फ़ायदे हैं:
- सेटअप करना आसान है, क्योंकि बिना Firebase प्रोजेक्ट बनाए भी इम्यूलेटर चलाए जा सकते हैं
- ज़्यादा सुरक्षा मिलती है. ऐसा इसलिए, क्योंकि अगर आपका कोड गलती से नॉन-इम्युलेटेड (प्रोडक्शन) संसाधनों को चालू कर देता है, तो डेटा में बदलाव, इस्तेमाल, और बिलिंग की कोई संभावना नहीं होती
- ऑफ़लाइन मोड में बेहतर तरीके से काम करता है, क्योंकि SDK टूल के कॉन्फ़िगरेशन को डाउनलोड करने के लिए इंटरनेट का ऐक्सेस ज़रूरी नहीं है.
प्रोटोटाइपिंग का मुख्य वर्कफ़्लो
अगर आपको तेज़ी से बदलाव करने हैं या आपको अपने ऐप्लिकेशन को, बैकएंड प्रोजेक्ट के सिम्युलेट किए गए संसाधनों के साथ इंटरैक्ट करना है, तो अपने Hosting कॉन्टेंट और कॉन्फ़िगरेशन की जांच स्थानीय तौर पर की जा सकती है. स्थानीय तौर पर टेस्टिंग करते समय, Firebase आपके वेब ऐप्लिकेशन को स्थानीय तौर पर होस्ट किए गए यूआरएल पर दिखाता है.
(ज़रूरी नहीं) डिफ़ॉल्ट रूप से, स्थानीय तौर पर होस्ट किया गया आपका ऐप्लिकेशन, असली प्रोजेक्ट संसाधनों (फ़ंक्शन, डेटाबेस, नियम वगैरह) के साथ इंटरैक्ट करेगा, न कि इमुलेट किए गए प्रोजेक्ट संसाधनों के साथ. इसके बजाय, अपने ऐप्लिकेशन को किसी भी इम्यूलेट किए गए प्रोजेक्ट के उन संसाधनों से कनेक्ट किया जा सकता है जिन्हें आपने कॉन्फ़िगर किया है. ज़्यादा जानें: Realtime Database | Cloud Firestore | Cloud Functions
अपनी लोकल प्रोजेक्ट डायरेक्ट्री के रूट से, यह कमांड चलाएं:
firebase emulators:start
अपने वेब ऐप्लिकेशन को सीएलआई से मिले लोकल यूआरएल (आम तौर पर
http://localhost:5000
) पर खोलें.बदलावों के साथ लोकल यूआरएल को अपडेट करने के लिए, अपने ब्राउज़र को रीफ़्रेश करें.
स्थानीय नेटवर्क से कनेक्ट किए गए अन्य डिवाइसों पर टेस्ट करना
डिफ़ॉल्ट रूप से, एम्युलेटर सिर्फ़ localhost
से मिले अनुरोधों का जवाब देते हैं. इसका मतलब है कि होस्ट किए गए कॉन्टेंट को अपने कंप्यूटर के वेब ब्राउज़र से ऐक्सेस किया जा सकेगा. हालाँकि, इसे अपने नेटवर्क पर मौजूद अन्य डिवाइसों से ऐक्सेस नहीं किया जा सकेगा. अगर आपको अन्य लोकल डिवाइसों से टेस्ट करना है, तो अपने firebase.json
को इस तरह कॉन्फ़िगर करें:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
इंटिग्रेशन बनाए रखने के वर्कफ़्लो के लिए, पुष्टि करने वाले टोकन जनरेट करना
अगर आपके कंटिन्यूअस इंटिग्रेशन वर्कफ़्लो, Firebase Hosting पर निर्भर करते हैं, तो आपको firebase emulators:exec
चलाने के लिए, टोकन का इस्तेमाल करके लॉग इन करना होगा. अन्य इम्यूलेटर के लिए, लॉग इन करने की ज़रूरत नहीं होती.
टोकन जनरेट करने के लिए, अपने लोकल एनवायरमेंट पर firebase login:ci
चलाएं. इसे सीआई सिस्टम से नहीं किया जाना चाहिए. पुष्टि करने के लिए निर्देशों का पालन करें.
आपको हर प्रोजेक्ट के लिए, यह चरण सिर्फ़ एक बार पूरा करना होगा. ऐसा इसलिए, क्योंकि टोकन सभी बिल्ड के लिए मान्य होगा. टोकन को पासवर्ड की तरह इस्तेमाल किया जाना चाहिए. यह पक्का करें कि इसे गोपनीय रखा जाए.
अगर आपका सीआई एनवायरमेंट, ऐसे एनवायरमेंट वैरिएबल तय करने की अनुमति देता है जिनका इस्तेमाल बिल्ड स्क्रिप्ट में किया जा सकता है, तो बस FIREBASE_TOKEN
नाम का एक एनवायरमेंट वैरिएबल बनाएं. इसकी वैल्यू, ऐक्सेस टोकन स्ट्रिंग होगी. Firebase सीएलआई, FIREBASE_TOKEN
एनवायरमेंट वैरिएबल को अपने-आप चुन लेगा. इसके बाद, एम्युलेटर ठीक से काम करने लगेंगे.
आखिरी विकल्प के तौर पर, टोकन को अपनी बिल्ड स्क्रिप्ट में शामिल किया जा सकता है. हालांकि, यह पक्का करें कि जिन पक्षों पर भरोसा नहीं किया जा सकता उनके पास इसका ऐक्सेस न हो. हार्ड-कोड किए गए इस तरीके के लिए, firebase emulators:exec
कमांड में --token "YOUR_TOKEN_STRING_HERE"
जोड़ा जा सकता है.
आगे क्या करना है?
- Firebase वेब कोडलैब में दिए गए निर्देशों का पालन करके, Hosting एम्युलेटर का इस्तेमाल करके क्विकस्टार्ट चलाएं.
- फ़ंक्शन के लिए होस्टिंग गाइड में बताए गए तरीके से, Hosting एम्युलेटर का इस्तेमाल करके एचटीटीपीएस फ़ंक्शन का प्रोटोटाइप बनाने का तरीका जानें.
- वीडियो के चुने गए सेट और इस्तेमाल के तरीके के बारे में ज़्यादा जानकारी देने वाले उदाहरणों के लिए, Firebase Emulator की ट्रेनिंग प्लेलिस्ट देखें.