Firebase लोकल एम्युलेटर सुइट को अलग-अलग वर्शन के लिए इंस्टॉल और कॉन्फ़िगर किया जा सकता है एक बार के प्रोटोटाइपिंग सेशन से लेकर, एआई मॉडल की मदद से लगातार इंटिग्रेशन वर्कफ़्लो बनाए रखना.
लोकल एम्युलेटर सुइट इंस्टॉल करें
Emulator Suite को इंस्टॉल करने से पहले आपको इनकी ज़रूरत होगी:
एम्युलेटर सुइट को इंस्टॉल करने के लिए:
- Firebase सीएलआई इंस्टॉल करें.
अगर आपने पहले से Firebase सीएलआई इंस्टॉल नहीं किया है, तो
इसे अभी इंस्टॉल करें.
एम्युलेटर सुइट का इस्तेमाल करने के लिए, आपको सीएलआई वर्शन 8.14.0 या इसके बाद वाले वर्शन की ज़रूरत होगी. आप
देखें कि आपने निम्न आदेश का उपयोग करके कौन-सा वर्शन इंस्टॉल किया है:
firebase --version
- अगर आपने अभी तक ऐसा नहीं किया है, तो मौजूदा डायरेक्ट्री शुरू करें
का इस्तेमाल किया जा सकता है.
इस्तेमाल के लिए प्रॉडक्ट:
firebase init
- एम्युलेटर सुइट को सेट अप करें. यह निर्देश एक कॉन्फ़िगरेशन विज़र्ड शुरू करता है, जो
आपको अपनी पसंद के एम्युलेटर चुनने की सुविधा मिलती है. साथ ही, इससे जुड़ा एम्युलेटर डाउनलोड करने की सुविधा मिलती है
बाइनरी फ़ाइलें खोजी जाएंगी और अगर डिफ़ॉल्ट सही नहीं हैं, तो एम्युलेटर पोर्ट सेट करें.
firebase init emulators
एम्युलेटर इंस्टॉल होने के बाद, अपडेट की न तो जांच की जाती है और न ही कोई अतिरिक्त जांच की जाती है अपने-आप डाउनलोड होने की प्रोसेस तब तक जारी रहेगी, जब तक Firebase सीएलआई वर्शन को अपडेट नहीं किया जाता.
एम्युलेटर सुइट को कॉन्फ़िगर करें
वैकल्पिक रूप से, एम्युलेटर को कॉन्फ़िगर किया जा सकता है नेटवर्क पोर्ट और सुरक्षा का पाथ
firebase.json
फ़ाइल में नियमों की परिभाषाएं:
firebase init emulators
चलाकर या बदलाव करके एम्युलेटर पोर्ट बदलें मैन्युअल रूप सेfirebase.json
.firebase.json
में बदलाव करके, सुरक्षा नियमों की परिभाषाओं का पाथ बदलें मैन्युअल रूप से.
अगर आप इन सेटिंग को कॉन्फ़िगर नहीं करते हैं, तो एम्युलेटर डिफ़ॉल्ट पोर्ट और Cloud Firestore, Realtime Database, और Cloud Storage for Firebase एम्युलेटर, ओपन डेटा सिक्योरिटी के साथ चलेंगे.
आदेश | ब्यौरा |
---|---|
इनिट एम्युलेटर | एम्युलेटर शुरू करने वाला विज़र्ड शुरू करें. इंस्टॉल किए जाने वाले एम्युलेटर की पहचान करें और वैकल्पिक रूप से, एम्युलेटर पोर्ट की सेटिंग तय करें. init emulators सुरक्षित नहीं है; डिफ़ॉल्ट स्वीकार करने से मौजूदा एम्युलेटर कॉन्फ़िगरेशन सुरक्षित रहेगा. |
पोर्ट कॉन्फ़िगरेशन
हर एम्युलेटर, आपकी पसंदीदा डिफ़ॉल्ट सेवा के साथ आपकी मशीन पर एक अलग पोर्ट से जुड़ता है वैल्यू.
एमुलेटर | डिफ़ॉल्ट पोर्ट |
---|---|
Authentication | 9099 |
Emulator Suite UI | 4000 |
Cloud Functions | 5001 |
Eventarc | 9299 |
Realtime Database | 9000 |
Cloud Firestore | 8080 |
Cloud Storage for Firebase | 9199 |
Firebase Hosting | 5000 |
Pub/Sub | 8085 |
प्रोजेक्ट आईडी का कॉन्फ़िगरेशन
एम्युलेटर शुरू करने के आपके तरीके के आधार पर, आपके पास अलग-अलग Firebase प्रोजेक्ट आईडी या एक से ज़्यादा एम्युलेटर इंस्टेंस का इस्तेमाल करने वाला एम्युलेटर . ऐसे मामलों में, एम्युलेटर इंस्टेंस अलग एनवायरमेंट होने पर.
आम तौर पर, सभी एम्युलेटर के लिए एक प्रोजेक्ट आईडी सेट करना अच्छा होता है शुरू करने, इसलिए Emulator Suite UI, अलग-अलग प्रॉडक्ट एम्युलेटर, और सभी किसी विशेष एम्युलेटर के चल रहे इंस्टेंस सभी में सही ढंग से मामले.
Local Emulator Suite में एक से ज़्यादा प्रोजेक्ट आईडी मिलने पर, वह चेतावनी जारी करती है
पर्यावरण के लिए तैयार किया गया है. हालांकि, इस व्यवहार में बदलाव करने के लिए,
अपने firebase.json
में false
के लिए, singleProjectMode
बटन दबाएं.
प्रोजेक्ट आईडी से जुड़े एलानों को देखा जा सकता है, ताकि इनमें जानकारी मेल न खाती हो:
- कमांड लाइन में डिफ़ॉल्ट प्रोजेक्ट. डिफ़ॉल्ट रूप से, प्रोजेक्ट आईडी
firebase init
के साथ चुने गए प्रोजेक्ट से स्टार्टअप पर लिया जाएगा याfirebase use
. प्रोजेक्ट की सूची देखने और यह देखने के लिए कि कौनसा प्रोजेक्ट चुना गया हैfirebase projects:list
का इस्तेमाल करें. - नियम यूनिट टेस्ट. प्रोजेक्ट आईडी को अक्सर नियमों को लागू करने के लिए किए गए कॉल में बताया जाता है
यूनिट टेस्टिंग लाइब्रेरी के तरीके
initializeTestEnvironment
याinitializeTestApp
. - कमांड लाइन
--project
फ़्लैग. Firebase सीएलआई को पास किया जा रहा है--project
फ़्लैग, डिफ़ॉल्ट प्रोजेक्ट को बदल देता है. आपको यह पक्का करना होगा कि फ़्लैग का निशान, यूनिट टेस्ट और ऐप्लिकेशन शुरू करने की प्रोसेस में मौजूद प्रोजेक्ट आईडी से मेल खाता हो.
प्लैटफ़ॉर्म के हिसाब से वे प्रोजेक्ट आईडी कॉन्फ़िगरेशन भी देखें जिन्हें आपने सेट किया है आपके Apple प्लैटफ़ॉर्म को कॉन्फ़िगर करके, Android और वेब प्रोजेक्ट.
सुरक्षा के नियमों का कॉन्फ़िगरेशन
एम्युलेटर, database
से सुरक्षा नियमों के कॉन्फ़िगरेशन को पूरा करेगा,
firebase.json
में firestore
और storage
कॉन्फ़िगरेशन कुंजियां हैं.
{
// Existing firebase configuration ...
"database": {
"rules": "database.rules.json"
},
"firestore": {
"rules": "firestore.rules"
},
"storage": {
"rules": "storage.rules"
}
// ...
// Optional emulator configuration. Default
// values are used if absent.
"emulators": {
"singleProjectMode": false, // do not warn on detection of multiple project IDs
"firestore": {
"port": "8080"
},
"ui": {
"enabled": true, // Default is `true`
"port": 4000 // If unspecified, see CLI log for selected port
},
"auth": {
"port": "9099"
},
"pubsub": {
"port": "8085"
}
}
}
Java के विकल्प तय करना
Realtime Database एम्युलेटर, Cloud Firestore एम्युलेटर, और इसका हिस्सा
Cloud Storage for Firebase एम्युलेटर, Java पर आधारित है. इसे ज़रूरत के मुताबिक बनाया जा सकता है
एनवायरमेंट वैरिएबल JAVA_TOOL_OPTIONS
के ज़रिए जेवीएम फ़्लैग के साथ.
उदाहरण के लिए, अगर आपको Java हीप स्पेस से जुड़ी गड़बड़ियां मिलती हैं, तो Java हीप का ज़्यादा से ज़्यादा साइज़ 4 जीबी होना चाहिए:
export JAVA_TOOL_OPTIONS="-Xmx4g"
firebase emulators:start
एक से ज़्यादा फ़्लैग को कोट में रखा जा सकता है और उन्हें स्पेस देकर अलग किया जा सकता है, जैसे
JAVA_TOOL_OPTIONS="-Xms2g -Xmx4g"
. फ़्लैग केवल Java-आधारित
कॉम्पोनेंट, एम्युलेटर के लिए उपलब्ध होते हैं और जिनका अन्य चीज़ों पर कोई असर नहीं पड़ता
Firebase सीएलआई, जैसे कि Emulator Suite UI.
स्टार्ट अप एम्युलेटर
एम्युलेटर को तब तक चलाया जा सकता है, जब तक कि उसे मैन्युअल तरीके से खत्म नहीं कर दिया जाता या फिर तय समय के लिए सेट अप करें और फिर अपने-आप शट डाउन हो जाए.
आदेश | ब्यौरा | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
emulator:शुरू करें | firebase.json में कॉन्फ़िगर किए गए Firebase प्रॉडक्ट के लिए, एम्युलेटर शुरू करें.
जब तक पूरी तरह से बंद नहीं किया जाता, तब तक एम्युलेटर प्रोसेस चलती रहेंगी. कॉल से जुड़ी सुविधा
emulators:start , एम्युलेटर को ~/.cache/firebase/emulator/ में डाउनलोड करेगा, अगर
वे पहले से इंस्टॉल नहीं हैं.
|
||||||||||||
सिम्युलेटर:एक्सपेरिमेंट scriptpath | Firebase प्रॉडक्ट के लिए एम्युलेटर शुरू करने के बाद, scriptpath पर स्क्रिप्ट चलाएं
firebase.json में कॉन्फ़िगर किया गया. एम्युलेटर की प्रोसेस तब अपने-आप बंद हो जाएंगी, जब
स्क्रिप्ट पूरी तरह से चल चुकी है.
|
आम तौर पर, firebase emulators:exec
तरीका
इंटिग्रेशन से जुड़े वर्कफ़्लो को लगातार जारी रखा जा सकता है.
एम्युलेटर डेटा को एक्सपोर्ट और इंपोर्ट करें
आप Authentication, Cloud Firestore, Realtime Database और
शेयर किए जा सकने वाले सामान्य बेसलाइन डेटा के तौर पर इस्तेमाल करने के लिए, Cloud Storage for Firebase एम्युलेटर
सेट. इन डेटा सेट को --import
फ़्लैग का इस्तेमाल करके इंपोर्ट किया जा सकता है. जैसे:
ऊपर बताया गया है.
सिम्युलेटर:एक्सपोर्ट करें export_directory |
Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एम्युलेटर.
मौजूदा Cloud Firestore, Realtime Database या Cloud Storage for Firebase से डेटा एक्सपोर्ट करना
एम्युलेटर इंस्टेंस पर लागू होता है. अगर ऐसा होता है, तो बताया गया
एम्युलेटर का इस्तेमाल करके, वे अपने-आप डेटा एक्सपोर्ट होने के निर्देश
|
अपने सीआई सिस्टम से इंटिग्रेट करें
कंटेनर के तौर पर इस्तेमाल किए जा रहे एम्युलेटर सुइट की इमेज
कंटेनर के साथ Emulator Suite की इंस्टॉलेशन और कॉन्फ़िगरेशन सामान्य सीआई को सेटअप करना आसान है.
इन बातों पर ध्यान दें:
JAR फ़ाइलें,
~/.cache/firebase/emulators/
पर इंस्टॉल और कैश मेमोरी में सेव की जाती हैं.- आपको इस पाथ को अपने सीआई कैश कॉन्फ़िगरेशन में जोड़ना चाहिए, ताकि आप बार-बार डाउनलोड करने की सुविधा मिलती है.
अगर आपकी रिपॉज़िटरी में
firebase.json
फ़ाइल नहीं है, तो आपकोemulators:start
याemulators:exec
कमांड को कमांड लाइन आर्ग्युमेंट का इस्तेमाल करें. उदाहरण के लिए,
पर बताया गया है--only functions,firestore
.
पुष्टि करने वाला टोकन जनरेट करें (सिर्फ़ होस्टिंग एम्युलेटर)
अगर आपके इंटिग्रेशन का वर्कफ़्लो, Firebase Hosting पर निर्भर है, तो
firebase emulators:exec
को चलाने के लिए, को टोकन का इस्तेमाल करके लॉग इन करना होगा. कॉन्टेंट बनाने
अन्य एम्युलेटर के लिए लॉगिन करने की ज़रूरत नहीं होती.
टोकन जनरेट करने के लिए, अपने लोकल एनवायरमेंट पर firebase login:ci
चलाएं; इसे किसी सीआई सिस्टम से नहीं किया जाना चाहिए. पुष्टि करने के लिए निर्देशों का पालन करें. आपको हर प्रोजेक्ट के लिए यह चरण सिर्फ़ एक बार करना होगा, क्योंकि टोकन सभी बिल्ड के लिए मान्य होगा. टोकन को पासवर्ड की तरह माना जाना चाहिए; यह पक्का करें कि उसे गोपनीय रखा गया है.
अगर आपके सीआई एनवायरमेंट की मदद से, ऐसे एनवायरमेंट वैरिएबल तय किए जा सकते हैं जिन्हें
का इस्तेमाल बिल्ड स्क्रिप्ट में किया जाता है, तो बस
FIREBASE_TOKEN
, जिसकी वैल्यू ऐक्सेस टोकन स्ट्रिंग होती है. Firebase सीएलआई
FIREBASE_TOKEN
एनवायरमेंट वैरिएबल अपने-आप पिक अप हो जाएगा और
एम्युलेटर ठीक से चालू हो जाएंगे.
आखिरी विकल्प के तौर पर, टोकन को अपनी बिल्ड स्क्रिप्ट में शामिल करें, लेकिन
पक्का करें कि गैर-भरोसेमंद पक्षों के पास ऐक्सेस न हो. हार्ड कोड किए गए इस वीडियो के लिए
तो आप --token "YOUR_TOKEN_STRING_HERE"
को
firebase emulators:exec
निर्देश.
एम्युलेटर हब REST API का इस्तेमाल करें
चल रहे एम्युलेटर की सूची
मौजूदा समय में चल रहे एम्युलेटर की सूची बनाने के लिए, /emulators
को GET
का अनुरोध भेजें
एम्युलेटर हब का एंडपॉइंट होता है.
curl localhost:4400/emulators
इससे एक JSON ऑब्जेक्ट मिलेगा, जिसमें सभी मौजूदा एम्युलेटर और उनके होस्ट/पोर्ट कॉन्फ़िगरेशन, उदाहरण के लिए:
{
"hub":{
"name": "hub",
"host": "localhost",
"port": 4400
},
"functions": {
"name": "functions",
"host": "localhost",
"port": 5001
}
"firestore": {
"name": "firestore",
"host": "localhost",
"port": 8080
}
}
बैकग्राउंड फ़ंक्शन ट्रिगर को चालू / बंद करें
कुछ परिस्थितियों में आपको स्थानीय फ़ंक्शन को अस्थायी रूप से बंद करना होगा और
एक्सटेंशन ट्रिगर के बारे में ज़्यादा जानें. उदाहरण के लिए, हो सकता है कि आप
Cloud Firestore एम्युलेटर, जो किसी भी onDelete
फ़ंक्शन को ट्रिगर नहीं करता
Cloud Functions या Extensions एम्युलेटर में चल रहे हैं.
लोकल फ़ंक्शन ट्रिगर को कुछ समय के लिए बंद करने के लिए PUT
को
एम्युलेटर हब का /functions/disableBackgroundTriggers
एंडपॉइंट.
curl -X PUT localhost:4400/functions/disableBackgroundTriggers
इससे, एक JSON ऑब्जेक्ट मिलेगा, जिसमें मौजूदा स्थिति के बारे में जानकारी मिलेगी.
{
"enabled": false
}
लोकल फ़ंक्शन ट्रिगर बंद होने के बाद उन्हें चालू करने के लिए, PUT
भेजें
एम्युलेटर के /functions/enableBackgroundTriggers
एंडपॉइंट के लिए अनुरोध करें
हब.
curl -X PUT localhost:4400/functions/enableBackgroundTriggers
इससे, एक JSON ऑब्जेक्ट मिलेगा, जिसमें मौजूदा स्थिति के बारे में जानकारी मिलेगी.
{
"enabled": true
}
एम्युलेटर SDK टूल के इंटिग्रेशन
इस सेक्शन में मौजूद टेबल से पता चलता है कि क्लाइंट के पास कौनसे एम्युलेटर का इस्तेमाल करने की सुविधा है और एडमिन SDK टूल. आने वाले समय का मतलब है कि एम्युलेटर के लिए सहायता योजना बनाई गई है लेकिन अभी तक उपलब्ध नहीं है उपलब्ध हैं.
क्लाइंट SDK टूल की उपलब्धता
Android | Apple प्लैटफ़ॉर्म | वेब |
Firebase का यूज़र इंटरफ़ेस (यूआई) Android |
Firebase यूज़र इंटरफ़ेस (यूआई) iOS |
Firebase का यूज़र इंटरफ़ेस (यूआई) वेब |
|
---|---|---|---|---|---|---|
Realtime Database | 19.4.0 | 7.2.0 | 8.0.0 | 6.4.0 | फ़्यूचर | लागू नहीं |
Cloud Firestore | 21.6.0 | 7.2.0 | 8.0.0 | 6.4.0 | फ़्यूचर | लागू नहीं |
Authentication | 20.0.0 | 7.0.0 | 8.0.0 | 7.0.0 | फ़्यूचर | 4.7.2 |
Cloud Storage for Firebase | 20.0.0 | 8.0.0 | 8.4.0 | 7.0.0 | 11.0.0 | लागू नहीं |
Cloud Functions | 19.1.0 | 7.2.0 | 8.0.0 | लागू नहीं | लागू नहीं | लागू नहीं |
Hosting | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं |
Extensions | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं |
एडमिन SDK टूल की उपलब्धता
नोड | Java | Python | शुरू करें | |
---|---|---|---|---|
Realtime Database | 8.6.0 | 6.10.0 | 2.18.0 | फ़्यूचर |
Cloud Firestore | 8.0.0 | 6.10.0 | 3.0.0 | 1.0.0 |
Authentication | 9.3.0 | 7.2.0 | 5.0.0 | 4.2.0 |
Cloud Storage for Firebase | 9.8.0 | फ़्यूचर | फ़्यूचर | फ़्यूचर |
Cloud Functions | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं |
Hosting | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं |
Extensions | लागू नहीं | लागू नहीं | लागू नहीं | लागू नहीं |