लोकल एम्युलेटर सुइट को इंस्टॉल, कॉन्फ़िगर, और इंटिग्रेट करें

Firebase Local Emulator Suite को अलग-अलग प्रोटोटाइप और टेस्टिंग एनवायरमेंट के लिए इंस्टॉल और कॉन्फ़िगर किया जा सकता है. जैसे, एक बार में होने वाले प्रोटोटाइपिंग सेशन से लेकर, प्रोडक्शन-स्केल के लिए लगातार इंटिग्रेशन वाले वर्कफ़्लो तक.

Local Emulator Suite इंस्टॉल करना

Emulator Suite इंस्टॉल करने से पहले, आपको इन चीज़ों की ज़रूरत होगी:

  • Node.js का 16.0 या इसके बाद का वर्शन.
  • Java JDK का 11 या इसके बाद का वर्शन.

Emulator Suite इंस्टॉल करने के लिए:

  1. Firebase सीएलआई इंस्टॉल करें. अगर आपके पास पहले से Firebase CLI इंस्टॉल नहीं है, तो इसे अभी इंस्टॉल करें. Emulator Suite का इस्तेमाल करने के लिए, आपको सीएलआई का 8.14.0 या इसके बाद का वर्शन चाहिए. इस निर्देश का इस्तेमाल करके, यह पता लगाया जा सकता है कि आपने कौनसा वर्शन इंस्टॉल किया है:
    firebase --version
  2. अगर आपने अब तक ऐसा नहीं किया है, तो मौजूदा वर्किंग डायरेक्ट्री को Firebase प्रोजेक्ट के तौर पर शुरू करें. इसके लिए, स्क्रीन पर दिए गए निर्देशों का पालन करके यह तय करें कि किन प्रॉडक्ट का इस्तेमाल करना है:
    firebase init
  3. Emulator Suite सेट अप करें. यह कमांड, कॉन्फ़िगरेशन विज़र्ड को शुरू करता है. इसकी मदद से, अपनी पसंद के एमुलेटर चुने जा सकते हैं, उनसे जुड़ी एमुलेटर बाइनरी फ़ाइलें डाउनलोड की जा सकती हैं, और डिफ़ॉल्ट पोर्ट सही न होने पर एमुलेटर पोर्ट सेट किए जा सकते हैं.
    firebase init emulators

किसी एमुलेटर को इंस्टॉल करने के बाद, अपडेट की जांच नहीं की जाती. साथ ही, Firebase CLI का वर्शन अपडेट करने तक, कोई और अपडेट अपने-आप डाउनलोड नहीं होगा.

Emulator Suite कॉन्फ़िगर करना

आपके पास firebase.json फ़ाइल में, सुरक्षा नियमों की परिभाषाओं के लिए एमुलेटर के नेटवर्क पोर्ट और पाथ को कॉन्फ़िगर करने का विकल्प है:

  • firebase init emulators को चलाकर या firebase.json में मैन्युअल तरीके से बदलाव करके, एमुलेटर पोर्ट बदलें.
  • firebase.json में मैन्युअल तरीके से बदलाव करके, सुरक्षा नियमों की परिभाषाओं का पाथ बदलें.

अगर इन सेटिंग को कॉन्फ़िगर नहीं किया जाता है, तो एमुलेटर अपने डिफ़ॉल्ट पोर्ट पर सुनेंगे. साथ ही, Cloud Firestore, Realtime Database, और Cloud Storage for Firebase एमुलेटर, ओपन डेटा सिक्योरिटी के साथ चलेंगे.

आदेश ब्यौरा
init emulators एम्युलेटर को शुरू करने वाला विज़र्ड शुरू करें. इंस्टॉल किए जाने वाले एम्युलेटर की पहचान करें और एम्युलेटर पोर्ट की सेटिंग तय करें. हालांकि, ऐसा करना ज़रूरी नहीं है. init emulators से कोई नुकसान नहीं होता. डिफ़ॉल्ट सेटिंग स्वीकार करने पर, एमुलेटर का मौजूदा कॉन्फ़िगरेशन सुरक्षित रहेगा.

पोर्ट कॉन्फ़िगरेशन

हर एमुलेटर, आपकी मशीन पर किसी अलग पोर्ट से बंधा होता है. साथ ही, इसमें डिफ़ॉल्ट तौर पर एक पसंदीदा वैल्यू सेट होती है.

एम्युलेटर डिफ़ॉल्ट पोर्ट
Authentication 9099
App Hosting 5002
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 में singleProjectMode बटन को false पर सेट करके, इस व्यवहार को बदला जा सकता है.

प्रोजेक्ट आईडी के एलान में, इनमें मेल न खाने की जांच की जा सकती है:

  • कमांड लाइन में डिफ़ॉल्ट प्रोजेक्ट. डिफ़ॉल्ट रूप से, प्रोजेक्ट आईडी, firebase init या firebase use से चुने गए प्रोजेक्ट से, स्टार्टअप पर लिया जाएगा. प्रोजेक्ट की सूची देखने और यह देखने के लिए कि कौनसा प्रोजेक्ट चुना गया है, firebase projects:list का इस्तेमाल करें.
  • नियमों के यूनिट टेस्ट. प्रोजेक्ट आईडी, अक्सर Rules Unit Testing लाइब्रेरी के तरीकों initializeTestEnvironment या initializeTestApp के कॉल में बताया जाता है.
  • कमांड लाइन --project फ़्लैग. Firebase CLI --project फ़्लैग पास करने पर, डिफ़ॉल्ट प्रोजेक्ट बदल जाता है. आपको यह पक्का करना होगा कि यूनिट टेस्ट और ऐप्लिकेशन के शुरू होने पर, फ़्लैग की वैल्यू, प्रोजेक्ट आईडी से मेल खाती हो.

Apple प्लैटफ़ॉर्म, Android, और वेब प्रोजेक्ट को कॉन्फ़िगर करते समय, आपने प्लैटफ़ॉर्म के हिसाब से जो प्रोजेक्ट आईडी कॉन्फ़िगर किए हैं उन्हें भी देखें.

सुरक्षा नियमों का कॉन्फ़िगरेशन

एमुलेटर, firebase.json में database, 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 की मदद से, JVM फ़्लैग के हिसाब से पसंद के मुताबिक बनाया जा सकता है.

उदाहरण के लिए, अगर आपको Java ढेर के स्पेस से जुड़ी गड़बड़ियां आ रही हैं, तो Java ढेर का ज़्यादा से ज़्यादा साइज़ 4 जीबी तक बढ़ाया जा सकता है:

export JAVA_TOOL_OPTIONS="-Xmx4g"
firebase emulators:start

एक से ज़्यादा फ़्लैग को कोटेशन में डाला जा सकता है और उन्हें स्पेस से अलग किया जा सकता है, जैसे कि JAVA_TOOL_OPTIONS="-Xms2g -Xmx4g". फ़्लैग का असर, सिर्फ़ एमुलेटर के Java-based कॉम्पोनेंट पर पड़ता है. इनका असर Firebase CLI के दूसरे हिस्सों पर नहीं पड़ता, जैसे कि Emulator Suite UI.

एम्युलेटर शुरू करना

एमुलेटर को मैन्युअल तरीके से बंद किए जाने तक या तय की गई टेस्ट स्क्रिप्ट के दौरान चलाने के लिए सेट किया जा सकता है. इसके बाद, वे अपने-आप बंद हो जाएंगे.

आदेश ब्यौरा
emulators:start firebase.json में कॉन्फ़िगर किए गए Firebase प्रॉडक्ट के लिए, एमुलेटर शुरू करें. एमुलेटर प्रोसेस तब तक चलती रहेंगी, जब तक उन्हें साफ़ तौर पर बंद नहीं किया जाता. emulators:start को कॉल करने पर, एम्युलेटर ~/.cache/firebase/emulators/ में डाउनलोड हो जाएंगे. ऐसा तब होगा, जब वे पहले से इंस्टॉल न हों.
झंडा ब्यौरा
--only ज़रूरी नहीं. यह तय करें कि कौनसे एम्युलेटर शुरू हों. कॉमा लगाकर अलग किए गए एमुलेटर के नामों की सूची दें. इसमें 'auth', 'database', 'firestore', 'functions', 'hosting' या 'pubsub' में से एक या एक से ज़्यादा नाम शामिल करें.
--inspect-functions debug_port ज़रूरी नहीं. तय किए गए पोर्ट पर फ़ंक्शन के लिए ब्रेकपॉइंट डीबगिंग की सुविधा चालू करने के लिए, Cloud Functions एम्युलेटर के साथ इस्तेमाल करें. अगर आर्ग्युमेंट नहीं दिया गया है, तो डिफ़ॉल्ट पोर्ट 9229 का इस्तेमाल किया जाएगा. ध्यान दें कि यह फ़्लैग इस्तेमाल करने पर, Cloud Functions एमुलेटर एक खास क्रम में फ़ंक्शन चलाने वाले मोड पर स्विच हो जाता है. इस मोड में, फ़ंक्शन एक ही प्रोसेस में, क्रम से (एफ़आईएफ़ओ) चलाए जाते हैं. इससे फ़ंक्शन की डीबगिंग आसान हो जाती है. हालांकि, यह क्लाउड में फ़ंक्शन को कई प्रोसेस में, एक साथ चलाने के तरीके से अलग है.
--export-on-exit= ज़रूरी नहीं. Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर के साथ इस्तेमाल करें. emulators:export कमांड के लिए बताए गए तरीके के मुताबिक, शटडाउन होने पर एमुलेटर को किसी डायरेक्ट्री में डेटा एक्सपोर्ट करने का निर्देश दें. एक्सपोर्ट डायरेक्ट्री को इस फ़्लैग की मदद से तय किया जा सकता है: firebase emulators:start --export-on-exit=./saved-data. --import का इस्तेमाल करने पर, एक्सपोर्ट पाथ डिफ़ॉल्ट रूप से वही होता है; उदाहरण के लिए: firebase emulators:start --import=./data-path --export-on-exit. आखिर में, अगर आप चाहें, तो --import और --export-on-exit फ़्लैग में अलग-अलग डायरेक्ट्री पाथ डालें.
--import=import_directory ज़रूरी नहीं. Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर के साथ इस्तेमाल करें. --export-on-exit स्टार्टअप विकल्प या emulators:export कमांड का इस्तेमाल करके सेव किए गए डेटा को, Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर इंस्टेंस में इंपोर्ट करें. एमुलेटर की मेमोरी में मौजूद मौजूदा डेटा को बदल दिया जाएगा.
emulators:exec scriptpath firebase.json में कॉन्फ़िगर किए गए Firebase प्रॉडक्ट के एमुलेटर शुरू करने के बाद, scriptpath पर स्क्रिप्ट चलाएं. स्क्रिप्ट के चलने के बाद, एमुलेटर प्रोसेस अपने-आप बंद हो जाएंगी.
झंडा ब्यौरा
--only ज़रूरी नहीं. यह तय करें कि कौनसे एम्युलेटर शुरू हों. कॉमा लगाकर अलग किए गए एमुलेटर के नामों की सूची दें. इसमें 'firestore', 'database', 'functions', 'hosting' या 'pubsub' में से एक या एक से ज़्यादा नाम शामिल करें.
--inspect-functions debug_port ज़रूरी नहीं. तय किए गए पोर्ट पर फ़ंक्शन के लिए ब्रेकपॉइंट डीबगिंग की सुविधा चालू करने के लिए, Cloud Functions एम्युलेटर के साथ इस्तेमाल करें. अगर आर्ग्युमेंट नहीं दिया गया है, तो डिफ़ॉल्ट पोर्ट 9229 का इस्तेमाल किया जाएगा. ध्यान दें कि यह फ़्लैग इस्तेमाल करने पर, Cloud Functions एमुलेटर एक खास क्रम में फ़ंक्शन को चलाने वाले मोड पर स्विच हो जाता है. इस मोड में, फ़ंक्शन एक ही प्रोसेस में, क्रम से (एफ़आईएफ़ओ) चलाए जाते हैं. इससे फ़ंक्शन को डीबग करना आसान हो जाता है. हालांकि, यह क्लाउड में फ़ंक्शन को कई प्रोसेस में, एक साथ चलाने के तरीके से अलग होता है.
--export-on-exit= ज़रूरी नहीं. Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर के साथ इस्तेमाल करें. emulators:export कमांड के लिए बताए गए तरीके के मुताबिक, शटडाउन होने पर एमुलेटर को किसी डायरेक्ट्री में डेटा एक्सपोर्ट करने का निर्देश दें. एक्सपोर्ट डायरेक्ट्री को इस फ़्लैग की मदद से तय किया जा सकता है: firebase emulators:start --export-on-exit=./saved-data. --import का इस्तेमाल करने पर, एक्सपोर्ट पाथ डिफ़ॉल्ट रूप से वही होता है; उदाहरण के लिए: firebase emulators:start --import=./data-path --export-on-exit. आखिर में, अगर आप चाहें, तो --import और --export-on-exit फ़्लैग में अलग-अलग डायरेक्ट्री पाथ डालें.
--import=import_directory ज़रूरी नहीं. Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर के साथ इस्तेमाल करें. --export-on-exit स्टार्टअप विकल्प या emulators:export कमांड का इस्तेमाल करके सेव किए गए डेटा को, Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर इंस्टेंस में इंपोर्ट करें. एमुलेटर की मेमोरी में मौजूद मौजूदा डेटा को बदल दिया जाएगा.
--ui ज़रूरी नहीं. स्क्रिप्ट को चलाने के दौरान, एम्युलेटर का यूज़र इंटरफ़ेस (यूआई) चलाएं.

आम तौर पर, firebase emulators:exec तरीका, लगातार इंटिग्रेशन वाले वर्कफ़्लो के लिए ज़्यादा सही होता है.

एमुलेटर का डेटा एक्सपोर्ट और इंपोर्ट करना

Authentication, Cloud Firestore, Realtime Database, और Cloud Storage for Firebase एमुलेटर से डेटा एक्सपोर्ट किया जा सकता है, ताकि उसे शेयर किए जा सकने वाले सामान्य बेसलाइन डेटा के तौर पर इस्तेमाल किया जा सके. इन डेटा सेट को ऊपर बताए गए तरीके से, --import फ़्लैग का इस्तेमाल करके इंपोर्ट किया जा सकता है.

emulators:export export_directory

Authentication, Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर. चल रहे Cloud Firestore, Realtime Database या Cloud Storage for Firebase एमुलेटर इंस्टेंस से डेटा एक्सपोर्ट करें. अगर तय किया गया export_directory पहले से मौजूद नहीं है, तो उसे बनाया जाएगा. अगर बताई गई डायरेक्ट्री मौजूद है, तो आपसे पुष्टि करने के लिए कहा जाएगा कि पिछले एक्सपोर्ट किए गए डेटा को ओवरराइट किया जाए. --force फ़्लैग का इस्तेमाल करके, इस मैसेज को छोड़ा जा सकता है. एक्सपोर्ट डायरेक्ट्री में डेटा मेनिफ़ेस्ट फ़ाइल, firebase-export-metadata.json शामिल होती है.

ऊपर बताए गए --export-on-exit फ़्लैग का इस्तेमाल करके, एमुलेटर को शटडाउन होने पर डेटा अपने-आप एक्सपोर्ट करने का निर्देश दिया जा सकता है.

अपने सीआई सिस्टम के साथ इंटिग्रेट करना

कंटेनर में मौजूद Emulator Suite की इमेज चलाना

आम तौर पर, सीआई सेटअप में कंटेनर के साथ 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 CLI, FIREBASE_TOKEN एनवायरमेंट वैरिएबल को अपने-आप चुन लेगा और एमुलेटर सही तरीके से शुरू हो जाएंगे.

आखिरी उपाय के तौर पर, अपनी बिल्ड स्क्रिप्ट में टोकन शामिल किया जा सकता है. हालांकि, यह पक्का करें कि भरोसेमंद पक्षों के पास इसका ऐक्सेस न हो. हार्ड कोड किए गए इस तरीके के लिए, firebase emulators:exec कमांड में --token "YOUR_TOKEN_STRING_HERE" जोड़ा जा सकता है.

Emulator Hub REST API का इस्तेमाल करना

चल रहे एम्युलेटर की सूची बनाना

फ़िलहाल चल रहे एमुलेटर की सूची देखने के लिए, Emulator Hub के /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 Functions या Extensions एमुलेटर में चल रहे किसी भी onDelete फ़ंक्शन को ट्रिगर किए बिना, Cloud Firestore एमुलेटर में मौजूद सारा डेटा मिटाना हो.

स्थानीय फ़ंक्शन ट्रिगर को कुछ समय के लिए बंद करने के लिए, एमुलेटर हब के /functions/disableBackgroundTriggers एंडपॉइंट पर PUT अनुरोध भेजें.

curl -X PUT localhost:4400/functions/disableBackgroundTriggers

इसका नतीजा, मौजूदा स्थिति की जानकारी देने वाला JSON ऑब्जेक्ट होगा.

{
  "enabled": false
}

बंद किए गए लोकल फ़ंक्शन ट्रिगर को चालू करने के लिए, Emulator Hub के /functions/enableBackgroundTriggers एंडपॉइंट पर PUT अनुरोध भेजें.

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 लागू नहीं लागू नहीं लागू नहीं लागू नहीं लागू नहीं लागू नहीं

Admin SDK टूल की उपलब्धता

नोड Java Python Go
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 लागू नहीं लागू नहीं लागू नहीं लागू नहीं