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 प्रोजेक्ट के लिए प्रॉडक्ट को एमुलेट करता है.
एम्युलेटर शुरू करने से पहले, इस्तेमाल करने के लिए प्रोजेक्ट चुनें. इसके लिए, अपनी वर्किंग डायरेक्ट्री के सीएलआई रन 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 CLI, FIREBASE_TOKEN
एनवायरमेंट वैरिएबल को अपने-आप चुन लेगा और एमुलेटर सही तरीके से शुरू हो जाएंगे.
आखिरी उपाय के तौर पर, टोकन को अपनी बिल्ड स्क्रिप्ट में शामिल करें. हालांकि, यह पक्का करें कि
गैर-भरोसेमंद पक्षों के पास ऐक्सेस न हो. हार्ड कोड किए गए इस तरीके के लिए, firebase emulators:exec
कमांड में --token "YOUR_TOKEN_STRING_HERE"
जोड़ा जा सकता है.
आगे क्या करना है?
- Firebase वेब कोडलैब में दिया गया तरीका अपनाकर, Hosting एमुलेटर का इस्तेमाल करके तुरंत शुरू करने की सुविधा का इस्तेमाल करें.
- फ़ंक्शन के लिए होस्टिंग गाइड में बताए गए तरीके के मुताबिक, Hosting एमुलेटर का इस्तेमाल करके एचटीटीपीएस फ़ंक्शन का प्रोटोटाइप बनाने का तरीका जानें.
- वीडियो के चुने गए सेट और 'कैसे करें' के उदाहरणों के बारे में ज़्यादा जानने के लिए, Firebase एमुलेटर ट्रेनिंग प्लेलिस्ट देखें.