Firebase सीएलआई के बारे में जानकारी

Firebase CLI (GitHub) में, Firebase प्रोजेक्ट को मैनेज करने, देखने, और डिप्लॉय करने के लिए कई टूल उपलब्ध हैं.

Firebase CLI का इस्तेमाल करने से पहले, Firebase प्रोजेक्ट सेट अप करें.

सीएलआई को सेट अप करना या अपडेट करना

Firebase सीएलआई इंस्टॉल करना

अपने ऑपरेटिंग सिस्टम, अनुभव के लेवल, और/या इस्तेमाल के उदाहरण के हिसाब से, Firebase CLI को इंस्टॉल किया जा सकता है. सीएलआई को इंस्टॉल करने का तरीका चाहे जो भी हो, आपके पास एक जैसी सुविधाओं और firebase कमांड का ऐक्सेस होता है.

Windows macOS Linux

Windows

Firebase CLI for Windows को इंस्टॉल करने के लिए, इनमें से कोई एक विकल्प इस्तेमाल करें:

विकल्प ब्यौरा इसके लिए सुझाव दिया गया है...
स्टैंडअलोन बाइनरी सीएलआई के लिए स्टैंडअलोन बाइनरी डाउनलोड करें. इसके बाद, आपके पास एक्ज़ीक्यूटेबल को ऐक्सेस करने का विकल्प होता है. इससे एक शेल खुलता है, जहां firebase कमांड चलाई जा सकती है. नए डेवलपर

ऐसे डेवलपर जो Node.js का इस्तेमाल नहीं कर रहे हैं या इसके बारे में नहीं जानते हैं
npm सीएलआई इंस्टॉल करने और ग्लोबल तौर पर उपलब्ध firebase कमांड को चालू करने के लिए, npm (Node Package Manager) का इस्तेमाल करें. Node.js का इस्तेमाल करने वाले डेवलपर

स्टैंडअलोन बाइनरी

Firebase CLI के लिए बाइनरी डाउनलोड करने और चलाने के लिए, यह तरीका अपनाएं:

  1. Windows के लिए Firebase सीएलआई बाइनरी डाउनलोड करें.

  2. बाइनरी को ऐक्सेस करके, एक शेल खोलें. यहां firebase कमांड चलाई जा सकती है.

  3. लॉग इन करने और सीएलआई को टेस्ट करने के लिए आगे बढ़ें.

npm

npm (Node Package Manager) का इस्तेमाल करके, Firebase CLI इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. nvm-windows (Node Version Manager) का इस्तेमाल करके, Node.js इंस्टॉल करें. Node.js इंस्टॉल करने पर, npm कमांड टूल अपने-आप इंस्टॉल हो जाते हैं.

  2. npm के ज़रिए Firebase सीएलआई इंस्टॉल करने के लिए, यह कमांड चलाएं:

    npm install -g firebase-tools

    इस कमांड से, दुनिया भर में उपलब्ध firebase कमांड चालू हो जाती है.

  3. लॉग इन करने और सीएलआई को टेस्ट करने के लिए आगे बढ़ें.

macOS या Linux

macOS या Linux के लिए Firebase CLI को इंस्टॉल करने के लिए, इनमें से कोई एक विकल्प चुनें:

विकल्प ब्यौरा इसके लिए सुझाव दिया गया है...
अपने-आप इंस्टॉल होने वाली स्क्रिप्ट एक ऐसा निर्देश चलाएं जो आपके ऑपरेटिंग सिस्टम का अपने-आप पता लगाता है, सीएलआई का नया वर्शन डाउनलोड करता है, और फिर दुनिया भर में उपलब्ध firebase निर्देश को चालू करता है. नए डेवलपर

ऐसे डेवलपर जो Node.js का इस्तेमाल नहीं कर रहे हैं या इसके बारे में नहीं जानते हैं

CI/CD एनवायरमेंट में अपने-आप डिप्लॉय होने की सुविधा
स्टैंडअलोन बाइनरी सीएलआई के लिए स्टैंडअलोन बाइनरी डाउनलोड करें. इसके बाद, अपने वर्कफ़्लो के हिसाब से बाइनरी को कॉन्फ़िगर और चलाया जा सकता है. CLI का इस्तेमाल करके, वर्कफ़्लो को पूरी तरह से अपनी पसंद के मुताबिक बनाया जा सकता है
npm सीएलआई इंस्टॉल करने और ग्लोबल तौर पर उपलब्ध firebase कमांड को चालू करने के लिए, npm (Node Package Manager) का इस्तेमाल करें. Node.js का इस्तेमाल करने वाले डेवलपर

ऑटो इंस्टॉल स्क्रिप्ट

ऑटोमैटिक इंस्टॉल स्क्रिप्ट का इस्तेमाल करके Firebase CLI इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. यह cURL कमांड चलाएं:

    curl -sL https://firebase.tools | bash

    यह स्क्रिप्ट, आपके ऑपरेटिंग सिस्टम का अपने-आप पता लगाती है. इसके बाद, Firebase CLI की नई रिलीज़ डाउनलोड करती है. इसके बाद, दुनिया भर में उपलब्ध Firebase कमांड को चालू करती है.firebase

  2. लॉग इन करने और सीएलआई को टेस्ट करने के लिए आगे बढ़ें.

अपने-आप इंस्टॉल होने वाली स्क्रिप्ट के बारे में ज़्यादा उदाहरण और जानकारी के लिए, firebase.tools पर स्क्रिप्ट का सोर्स कोड देखें.

स्टैंडअलोन बाइनरी

अपने ओएस के लिए, Firebase CLI का बाइनरी डाउनलोड करने और उसे चलाने के लिए, यह तरीका अपनाएं:

  1. अपने ओएस के लिए Firebase सीएलआई बाइनरी डाउनलोड करें: macOS | Linux

  2. (ज़रूरी नहीं) दुनिया भर में उपलब्ध firebase कमांड सेट अप करें.

    1. chmod +x ./firebase_tools चलाकर, बाइनरी को एक्ज़ीक्यूटेबल बनाएं.
    2. अपने PATH में बाइनरी का पाथ जोड़ें.
  3. लॉग इन करने और सीएलआई को टेस्ट करने के लिए आगे बढ़ें.

npm

Firebase CLI को इंस्टॉल करने के लिए, npm (Node Package Manager) का इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. nvm (नोड वर्शन मैनेजर) का इस्तेमाल करके, Node.js इंस्टॉल करें.
    Node.js इंस्टॉल करने पर, npm कमांड टूल अपने-आप इंस्टॉल हो जाते हैं.

  2. npm के ज़रिए Firebase सीएलआई इंस्टॉल करने के लिए, यह कमांड चलाएं:

    npm install -g firebase-tools

    इस कमांड से, दुनिया भर में उपलब्ध firebase कमांड चालू हो जाती है.

  3. लॉग इन करने और सीएलआई को टेस्ट करने के लिए आगे बढ़ें.

लॉग इन करें और Firebase सीएलआई को आज़माएं

सीएलआई इंस्टॉल करने के बाद, आपको पुष्टि करनी होगी. इसके बाद, अपने Firebase प्रोजेक्ट की सूची बनाकर पुष्टि की जा सकती है.

  1. अपने Google खाते का इस्तेमाल करके Firebase में लॉग इन करने के लिए, यह कमांड चलाएं:

    firebase login

    इस कमांड से, आपकी लोकल मशीन Firebase से कनेक्ट हो जाती है. साथ ही, आपको अपने Firebase प्रोजेक्ट का ऐक्सेस मिल जाता है.

  2. जांच करें कि CLI सही तरीके से इंस्टॉल हो गया हो और आपके खाते को ऐक्सेस कर रहा हो. इसके लिए, अपने Firebase प्रोजेक्ट की सूची बनाएं. यह कमांड चलाएं:

    firebase projects:list

    दिखाई गई सूची में मौजूद Firebase प्रोजेक्ट, Firebase कंसोल में मौजूद Firebase प्रोजेक्ट के बराबर होने चाहिए.

सीएलआई के नए वर्शन पर अपडेट करना

आम तौर पर, आपको Firebase CLI के सबसे नए वर्शन का इस्तेमाल करना चाहिए.

सीएलआई के वर्शन को अपडेट करने का तरीका, आपके ऑपरेटिंग सिस्टम और सीएलआई को इंस्टॉल करने के तरीके पर निर्भर करता है.

खिड़कियां

macOS

  • अपने-आप इंस्टॉल होने वाली स्क्रिप्ट: curl -sL https://firebase.tools | upgrade=true bash चलाएं

  • स्टैंडअलोन बाइनरी: नया वर्शन डाउनलोड करें. इसके बाद, इसे अपने सिस्टम पर बदलें

  • npm: npm install -g firebase-tools चलाएं

Linux

  • अपने-आप इंस्टॉल होने वाली स्क्रिप्ट: curl -sL https://firebase.tools | upgrade=true bash चलाएं

  • स्टैंडअलोन बाइनरी: नया वर्शन डाउनलोड करें. इसके बाद, इसे अपने सिस्टम पर बदलें

  • npm: npm install -g firebase-tools चलाएं

सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करना

हमारा सुझाव है कि सीआई सिस्टम के साथ सीएलआई का इस्तेमाल करते समय, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके पुष्टि करें.

(सुझाया गया) ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करें

अगर ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल सेट किए गए हैं, तो Firebase CLI उनका पता लगाएगा और उनका इस्तेमाल करेगा. सीआई और अन्य हेडलेस एनवायरमेंट में सीएलआई की पुष्टि करने का सबसे आसान तरीका, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल सेट अप करना है.

(लेगसी) FIREBASE_TOKEN का इस्तेमाल करें

इसके अलावा, FIREBASE_TOKEN का इस्तेमाल करके भी पुष्टि की जा सकती है. यह ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल से कम सुरक्षित है. अब इसका इस्तेमाल करने का सुझाव नहीं दिया जाता.

  1. ब्राउज़र वाले किसी मशीन पर, Firebase सीएलआई इंस्टॉल करें.

  2. साइन इन करने की प्रोसेस शुरू करने के लिए, यह कमांड चलाएं:

    firebase login:ci
  3. दिए गए यूआरएल पर जाएं. इसके बाद, Google खाते का इस्तेमाल करके लॉग इन करें.

  4. नया रीफ़्रेश टोकन प्रिंट करें. मौजूदा सीएलआई सेशन पर इसका कोई असर नहीं पड़ेगा.

  5. आउटपुट टोकन को अपने सीआई सिस्टम में सुरक्षित तरीके से सेव करें, ताकि इसे आसानी से ऐक्सेस किया जा सके.

  6. firebase निर्देश चलाने के लिए, इस टोकन का इस्तेमाल करें. इनमें से किसी एक विकल्प का इस्तेमाल किया जा सकता है:

    • पहला विकल्प: टोकन को एनवायरमेंट वैरिएबल FIREBASE_TOKEN के तौर पर सेव करें. आपका सिस्टम, टोकन का इस्तेमाल अपने-आप करेगा.

    • दूसरा विकल्प: अपने सीआई सिस्टम में --token TOKEN फ़्लैग के साथ सभी firebase कमांड चलाएं.
      टोकन लोड करने के लिए प्राथमिकता का क्रम यह है: फ़्लैग, एनवायरमेंट वैरिएबल, और Firebase प्रोजेक्ट.

Firebase प्रोजेक्ट शुरू करना

CLI का इस्तेमाल करके कई सामान्य टास्क किए जाते हैं. जैसे, किसी Firebase प्रोजेक्ट में डिप्लॉय करना. इसके लिए, प्रोजेक्ट डायरेक्ट्री की ज़रूरत होती है. firebase init कमांड का इस्तेमाल करके, प्रोजेक्ट डायरेक्ट्री बनाई जाती है. प्रोजेक्ट डायरेक्ट्री आम तौर पर, आपकी सोर्स कंट्रोल रूट डायरेक्ट्री के जैसी ही होती है. firebase init चलाने के बाद, डायरेक्ट्री में firebase.json कॉन्फ़िगरेशन फ़ाइल होती है.

नया Firebase प्रोजेक्ट शुरू करने के लिए, अपने ऐप्लिकेशन की डायरेक्ट्री में जाकर यह कमांड चलाएं:

firebase init

firebase init कमांड की मदद से, प्रोजेक्ट डायरेक्ट्री और कुछ Firebase प्रॉडक्ट सेट अप किए जा सकते हैं. प्रोजेक्ट शुरू करते समय, Firebase CLI आपसे ये टास्क पूरे करने के लिए कहता है:

  • डिफ़ॉल्ट Firebase प्रोजेक्ट चुनें.

    इस चरण में, मौजूदा प्रोजेक्ट डायरेक्ट्री को Firebase प्रोजेक्ट से जोड़ा जाता है. इससे प्रोजेक्ट से जुड़ी कमांड (जैसे कि firebase deploy) सही Firebase प्रोजेक्ट के लिए काम करती हैं.

    एक ही प्रोजेक्ट डायरेक्ट्री के साथ एक से ज़्यादा Firebase प्रोजेक्ट (जैसे, स्टेजिंग प्रोजेक्ट और प्रोडक्शन प्रोजेक्ट) भी जोड़े जा सकते हैं.

  • अपने Firebase प्रोजेक्ट में सेट अप करने के लिए, Firebase के प्रॉडक्ट चुनें.

    इस चरण में, आपको चुने गए प्रॉडक्ट के लिए खास फ़ाइलों के कॉन्फ़िगरेशन सेट करने के लिए कहा जाता है. इन कॉन्फ़िगरेशन के बारे में ज़्यादा जानने के लिए, प्रॉडक्ट के दस्तावेज़ (उदाहरण के लिए, Hosting) देखें. ध्यान दें कि ज़्यादा Firebase प्रॉडक्ट सेट अप करने के लिए, firebase init को बाद में भी चलाया जा सकता है.

शुरू करने की प्रोसेस पूरी होने के बाद, Firebase आपके ऐप्लिकेशन की लोकल डायरेक्ट्री के रूट में ये दो फ़ाइलें अपने-आप बना देता है:

  • firebase.json कॉन्फ़िगरेशन फ़ाइल, जिसमें आपके प्रोजेक्ट का कॉन्फ़िगरेशन दिया गया होता है.

  • .firebaserc फ़ाइल, जिसमें आपके प्रोजेक्ट के उपनाम सेव होते हैं.

firebase.json फ़ाइल

firebase init कमांड, आपके प्रोजेक्ट डायरेक्ट्री के रूट में firebase.json कॉन्फ़िगरेशन फ़ाइल बनाती है.

firebase.json फ़ाइल ज़रूरी है, ताकि Firebase CLI की मदद से ऐसेट डिप्लॉय की जा सकें. ऐसा इसलिए, क्योंकि यह फ़ाइल बताती है कि आपकी प्रोजेक्ट डायरेक्ट्री की कौनसी फ़ाइलें और सेटिंग, आपके Firebase प्रोजेक्ट में डिप्लॉय की गई हैं. कुछ सेटिंग को आपकी प्रोजेक्ट डायरेक्ट्री या Firebase कंसोल में तय किया जा सकता है. इसलिए, पक्का करें कि आपने डिप्लॉयमेंट से जुड़ी किसी भी समस्या को ठीक कर लिया हो.

firebase.json फ़ाइल में सीधे तौर पर, ज़्यादातर Firebase Hosting विकल्पों को कॉन्फ़िगर किया जा सकता है. हालांकि, Firebase CLI के साथ डिप्लॉय की जा सकने वाली अन्य Firebase सेवाओं के लिए, firebase init कमांड से ऐसी फ़ाइलें बनती हैं जिनमें उन सेवाओं के लिए सेटिंग तय की जा सकती हैं. जैसे, Cloud Functions के लिए index.js फ़ाइल. firebase.json फ़ाइल में, प्रीडिप्लॉय या पोस्टडिप्लॉय हुक भी सेट अप किए जा सकते हैं.

यहां firebase.json फ़ाइल का एक उदाहरण दिया गया है. इसमें डिफ़ॉल्ट सेटिंग लागू हैं. ऐसा तब होता है, जब आपने शुरुआत में Firebase Hosting, Cloud Firestore, और Cloud Functions for Firebase (टाइपस्क्रिप्ट सोर्स और लिंट के विकल्प चुने गए हों) को चुना हो.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

firebase.json का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है. हालांकि, --config PATH फ़्लैग पास करके, कॉन्फ़िगरेशन की कोई दूसरी फ़ाइल तय की जा सकती है.

एक से ज़्यादा Cloud Firestore डेटाबेस के लिए कॉन्फ़िगरेशन

firebase init चलाने पर, आपकी firebase.json फ़ाइल में एक firestore कुंजी होगी. यह कुंजी आपके प्रोजेक्ट के डिफ़ॉल्ट डेटाबेस से जुड़ी होगी. जैसा कि ऊपर दिखाया गया है.

अगर आपके प्रोजेक्ट में एक से ज़्यादा Cloud Firestore डेटाबेस हैं, तो अपनी firebase.json फ़ाइल में बदलाव करें. इससे हर डेटाबेस के साथ अलग-अलग Cloud Firestore Security Rules और डेटाबेस इंडेक्स सोर्स फ़ाइलों को जोड़ा जा सकेगा. JSON कलेक्शन का इस्तेमाल करके फ़ाइल में बदलाव करें. इसमें हर डेटाबेस के लिए एक एंट्री होती है.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Cloud Functions फ़ाइलें, जिन्हें डिप्लॉय करते समय अनदेखा करना है

फ़ंक्शन डिप्लॉय करते समय, सीएलआई अपने-आप functions डायरेक्ट्री में मौजूद फ़ाइलों की एक सूची तय करता है, ताकि उन्हें अनदेखा किया जा सके. इससे बैकएंड में ऐसी फ़ालतू फ़ाइलों को डिप्लॉय होने से रोका जा सकता है जिनसे डिप्लॉयमेंट के डेटा का साइज़ बढ़ सकता है.

डिफ़ॉल्ट रूप से अनदेखी की गई फ़ाइलों की सूची, JSON फ़ॉर्मैट में दिखाई गई है. यह सूची यहां दी गई है:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

अगर आपको firebase.json में ignore के लिए अपनी कस्टम वैल्यू जोड़नी हैं, तो पक्का करें कि आपने ऊपर दिखाई गई फ़ाइलों की सूची को रखा हो. अगर यह सूची मौजूद नहीं है, तो इसे जोड़ें.

प्रोजेक्ट के उपनाम मैनेज करना

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

प्रोजेक्ट का उपनाम जोड़ना

प्रोजेक्ट शुरू करने के दौरान किसी Firebase प्रोजेक्ट को चुनने पर, प्रोजेक्ट को default का उपनाम अपने-आप असाइन हो जाता है. हालांकि, अगर आपको प्रोजेक्ट से जुड़ी कमांड को किसी दूसरे Firebase प्रोजेक्ट के लिए चलाने की अनुमति देनी है, लेकिन फिर भी उसी प्रोजेक्ट डायरेक्ट्री का इस्तेमाल करना है, तो अपनी प्रोजेक्ट डायरेक्ट्री में जाकर यह कमांड चलाएं:

firebase use --add

इस कमांड से, आपको कोई दूसरा Firebase प्रोजेक्ट चुनने और प्रोजेक्ट को उपनाम के तौर पर असाइन करने के लिए कहा जाता है. एलियास असाइनमेंट, आपकी प्रोजेक्ट डायरेक्ट्री में मौजूद .firebaserc फ़ाइल में लिखे जाते हैं.

प्रोजेक्ट के अन्य नामों का इस्तेमाल करना

असाइन किए गए Firebase प्रोजेक्ट के उपनामों का इस्तेमाल करने के लिए, अपने प्रोजेक्ट डायरेक्ट्री में जाकर इनमें से कोई भी कमांड चलाएं.

आदेश ब्यौरा
firebase use अपने प्रोजेक्ट डायरेक्ट्री के लिए, फ़िलहाल तय किए गए एलियास की सूची देखना
firebase use \
PROJECT_ID|ALIAS
यह विकल्प, सभी कमांड को तय किए गए Firebase प्रोजेक्ट के हिसाब से चलाने का निर्देश देता है.
सीएलआई, इस प्रोजेक्ट का इस्तेमाल "चालू प्रोजेक्ट" के तौर पर करता है.
firebase use --clear इससे ऐक्टिव प्रोजेक्ट हट जाता है.

अन्य सीएलआई कमांड चलाने से पहले, firebase use PROJECT_ID|ALIAS चलाकर नया चालू प्रोजेक्ट सेट करें.

firebase use \
--unalias PROJECT_ALIAS
यह आपके प्रोजेक्ट डायरेक्ट्री से किसी उपनाम को हटाता है.

--project फ़्लैग को किसी भी सीएलआई कमांड के साथ पास करके, मौजूदा समय में इस्तेमाल किए जा रहे प्रोजेक्ट को बदला जा सकता है. उदाहरण के लिए: अपने सीएलआई को ऐसे Firebase प्रोजेक्ट के लिए सेट किया जा सकता है जिसे आपने staging उपनाम दिया है. अगर आपको prod उपनाम वाले Firebase प्रोजेक्ट के लिए एक ही कमांड चलानी है, तो उदाहरण के लिए, firebase deploy --project=prod कमांड चलाई जा सकती है.

सोर्स कंट्रोल और प्रोजेक्ट के अन्य नाम

आम तौर पर, आपको अपनी .firebaserc फ़ाइल को सोर्स कंट्रोल में सेव करना चाहिए, ताकि आपकी टीम प्रोजेक्ट के एलियास शेयर कर सके. हालांकि, ओपन सोर्स प्रोजेक्ट या स्टार्टर टेंप्लेट के लिए, आपको आम तौर पर अपनी .firebaserc फ़ाइल में इसकी जांच नहीं करनी चाहिए.

अगर आपके पास कोई ऐसा डेवलपमेंट प्रोजेक्ट है जिसका इस्तेमाल सिर्फ़ आपको करना है, तो हर कमांड के साथ --project फ़्लैग पास किया जा सकता है. इसके अलावा, Firebase प्रोजेक्ट को कोई उपनाम असाइन किए बिना firebase use PROJECT_ID चलाया जा सकता है.

अपने Firebase प्रोजेक्ट को स्थानीय तौर पर टेस्ट करना और उसे उपलब्ध कराना

प्रोडक्शन में डिप्लॉय करने से पहले, स्थानीय तौर पर होस्ट किए गए यूआरएल पर अपने Firebase प्रोजेक्ट को देखा और टेस्ट किया जा सकता है. अगर आपको सिर्फ़ कुछ सुविधाओं को टेस्ट करना है, तो firebase serve कमांड में मौजूद फ़्लैग में कॉमा लगाकर अलग की गई सूची का इस्तेमाल किया जा सकता है.

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

  • Firebase होस्टिंग की सुविधा का इस्तेमाल करके होस्ट किए गए ऐप्लिकेशन का स्टैटिक कॉन्टेंट देखें.
  • Cloud Functions का इस्तेमाल करके, Firebase Hosting के लिए डाइनैमिक कॉन्टेंट जनरेट करना हो. साथ ही, आपको लोकल यूआरएल पर Hosting को एम्युलेट करने के लिए, प्रोडक्शन (डिप्लॉय किए गए) एचटीटीपी फ़ंक्शन का इस्तेमाल करना हो.
firebase serve --only hosting

local एचटीटीपी फ़ंक्शन का इस्तेमाल करके, अपने प्रोजेक्ट को एम्युलेट करना

लोकल एचटीटीपी फ़ंक्शन का इस्तेमाल करके अपने प्रोजेक्ट का इम्यूलेशन करने के लिए, अपनी प्रोजेक्ट डायरेक्ट्री से इनमें से कोई भी कमांड चलाएं.

  • लोकल यूआरएल पर टेस्टिंग के लिए, एचटीटीपी फ़ंक्शन और होस्टिंग की नकल करने के लिए, इनमें से किसी एक कमांड का इस्तेमाल करें:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • सिर्फ़ एचटीटीपी फ़ंक्शन का इस्तेमाल करने के लिए, इस कमांड का इस्तेमाल करें:

    firebase serve --only functions

स्थानीय नेटवर्क से कनेक्ट किए गए अन्य डिवाइसों से टेस्ट करना

डिफ़ॉल्ट रूप से, firebase serve सिर्फ़ localhost से मिले अनुरोधों का जवाब देता है. इसका मतलब है कि होस्ट किए गए कॉन्टेंट को अपने कंप्यूटर के वेब ब्राउज़र से ऐक्सेस किया जा सकेगा. हालाँकि, इसे अपने नेटवर्क से जुड़े अन्य डिवाइसों से ऐक्सेस नहीं किया जा सकेगा. अगर आपको अन्य लोकल डिवाइसों से टेस्ट करना है, तो --host फ़्लैग का इस्तेमाल करें. जैसे:

firebase serve --host 0.0.0.0  // accepts requests to any host

Firebase प्रोजेक्ट में डिप्लॉय करना

Firebase CLI, आपके Firebase प्रोजेक्ट में कोड और ऐसेट के डिप्लॉयमेंट को मैनेज करता है. इसमें ये शामिल हैं:

  • आपकी Firebase Hosting साइटों की नई रिलीज़
  • नई, अपडेट की गई या मौजूदा Cloud Functions for Firebase
  • Firebase Data Connect के लिए नए या अपडेट किए गए स्कीमा और कनेक्टर
  • Firebase Realtime Database के लिए नियम
  • Cloud Storage for Firebase के लिए नियम
  • Cloud Firestore के लिए नियम
  • Cloud Firestore के लिए इंडेक्स

किसी Firebase प्रोजेक्ट में डिप्लॉय करने के लिए, अपने प्रोजेक्ट की डायरेक्ट्री से यह कमांड चलाएं:

firebase deploy

आपके पास अपने हर डिप्लॉयमेंट में टिप्पणी जोड़ने का विकल्प होता है. यह टिप्पणी, आपके प्रोजेक्ट के Firebase Hosting पेज पर, डिप्लॉयमेंट की अन्य जानकारी के साथ दिखेगी. उदाहरण के लिए:

firebase deploy -m "Deploying the best new feature ever."

firebase deploy कमांड का इस्तेमाल करते समय, इन बातों का ध्यान रखें:

  • किसी प्रोजेक्ट डायरेक्ट्री से संसाधन डिप्लॉय करने के लिए, प्रोजेक्ट डायरेक्ट्री में firebase.json फ़ाइल होनी चाहिए. यह फ़ाइल, firebase init कमांड की मदद से आपके लिए अपने-आप बनाई जाती है.

  • डिफ़ॉल्ट रूप से, firebase deploy आपके प्रोजेक्ट डायरेक्ट्री में मौजूद, डिप्लॉय किए जा सकने वाले सभी संसाधनों के लिए रिलीज़ बनाता है. Firebase की कुछ सेवाओं या सुविधाओं को डिप्लॉय करने के लिए, आंशिक डिप्लॉयमेंट का इस्तेमाल करें.

सुरक्षा नियमों को लागू करने से जुड़े टकराव

Firebase Realtime Database, Cloud Storage for Firebase, और Cloud Firestore के लिए, सुरक्षा के नियमों को अपनी लोकल प्रोजेक्ट डायरेक्ट्री या Firebase कंसोल में तय किया जा सकता है.

डप्लॉयमेंट से जुड़ी समस्याओं से बचने के लिए, आंशिक डप्लॉयमेंट का इस्तेमाल करें और सिर्फ़ Firebase कंसोल में नियम तय करें.

डिप्लॉयमेंट के कोटे

ऐसा हो सकता है कि आपने किसी ऐसे कोटे का उल्लंघन किया हो जो Firebase डिप्लॉयमेंट की कार्रवाइयों की दर या वॉल्यूम को सीमित करता है. हालांकि, ऐसा होने की संभावना कम होती है. उदाहरण के लिए, बहुत ज़्यादा संख्या में फ़ंक्शन डिप्लॉय करते समय, आपको HTTP 429 Quota गड़बड़ी का मैसेज मिल सकता है. ऐसी समस्याओं को हल करने के लिए, आंशिक तौर पर डिप्लॉयमेंट का इस्तेमाल करें.

किसी डिप्लॉयमेंट को पहले जैसा करना

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

फ़िलहाल, Firebase Realtime Database, Cloud Storage for Firebase या Cloud Firestore के लिए, सुरक्षा के नियमों की रिलीज़ को पहले जैसा नहीं किया जा सकता.

Firebase की कुछ सेवाओं को डिप्लॉय करना

अगर आपको सिर्फ़ Firebase की कुछ सेवाओं या सुविधाओं को डिप्लॉय करना है, तो firebase deploy कमांड में मौजूद फ़्लैग में, कॉमा लगाकर अलग की गई सूची का इस्तेमाल किया जा सकता है. उदाहरण के लिए, यहां दिया गया निर्देश Firebase Hosting कॉन्टेंट और Cloud Storage सुरक्षा के नियमों को डिप्लॉय करता है.

firebase deploy --only hosting,storage

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

फ़्लैग सिंटैक्स सेवा या सुविधा को डिप्लॉय किया गया है
--only hosting Firebase Hosting कॉन्टेंट
--only database Firebase Realtime Database नियम
--only dataconnect Firebase Data Connect स्कीमा और कनेक्टर
--only storage Cloud Storage for Firebase नियम
--only firestore कॉन्फ़िगर किए गए सभी डेटाबेस के लिए Cloud Firestore नियम और इंडेक्स
--only functions Cloud Functions for Firebase (इस फ़्लैग के ज़्यादा सटीक वर्शन उपलब्ध हैं)

खास फ़ंक्शन डिप्लॉय करना

फ़ंक्शन डिप्लॉय करते समय, किसी खास फ़ंक्शन को टारगेट किया जा सकता है. उदाहरण के लिए:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

दूसरा विकल्प, अपनी /functions/index.js फ़ाइल में फ़ंक्शन को एक्सपोर्ट ग्रुप में ग्रुप करना है. ग्रुपिंग फ़ंक्शन की मदद से, एक ही निर्देश का इस्तेमाल करके कई फ़ंक्शन लागू किए जा सकते हैं.

उदाहरण के लिए, groupA और groupB को तय करने के लिए, यहां दिए गए फ़ंक्शन लिखे जा सकते हैं:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

इस उदाहरण में, एक अलग functions/groupB.js फ़ाइल में अतिरिक्त फ़ंक्शन शामिल हैं. ये फ़ंक्शन, खास तौर पर groupB में मौजूद फ़ंक्शन के बारे में बताते हैं. उदाहरण के लिए:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

इस उदाहरण में, अपनी प्रोजेक्ट डायरेक्ट्री से यह कमांड चलाकर, सभी groupA फ़ंक्शन डिप्लॉय किए जा सकते हैं:

firebase deploy --only functions:groupA

इसके अलावा, किसी ग्रुप में मौजूद किसी फ़ंक्शन को टारगेट करने के लिए, यह कमांड चलाएं:

firebase deploy --only functions:groupA.function1,groupB.function4

फ़ंक्शन मिटाना

Firebase CLI, पहले से डिप्लॉय किए गए फ़ंक्शन को मिटाने के लिए, यहां दिए गए निर्देशों और विकल्पों के साथ काम करता है:

  • यह कमांड, सभी इलाकों में उस नाम से मिलते-जुलते सभी फ़ंक्शन मिटा देती है:

    firebase functions:delete FUNCTION-1_NAME

  • यह फ़ंक्शन, किसी ऐसे फ़ंक्शन को मिटाता है जो डिफ़ॉल्ट क्षेत्र के अलावा किसी अन्य क्षेत्र में चल रहा है:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • एक से ज़्यादा फ़ंक्शन मिटाता है:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • यह फ़ंक्शन, तय किए गए फ़ंक्शन ग्रुप को मिटाता है:

    firebase functions:delete GROUP_NAME

  • पुष्टि करने के लिए दिखने वाले प्रॉम्प्ट को बायपास करता है:

    firebase functions:delete FUNCTION-1_NAME --force

डिप्लॉयमेंट से पहले और बाद में स्क्रिप्ट किए गए टास्क सेट अप करना

शेल स्क्रिप्ट को firebase deploy कमांड से कनेक्ट किया जा सकता है, ताकि डिप्लॉयमेंट से पहले या बाद में टास्क पूरे किए जा सकें. उदाहरण के लिए, प्रीडिप्लॉय स्क्रिप्ट, TypeScript कोड को JavaScript में ट्रांसपाइल कर सकती है. वहीं, पोस्टडिप्लॉय हुक, एडमिन को नई साइट के कॉन्टेंट को Firebase Hosting पर डिप्लॉय करने के बारे में सूचना दे सकता है.

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

उदाहरण के लिए, यहां दी गई स्क्रिप्ट, firebase.json में डिप्लॉयमेंट के बाद के टास्क के लिए एक्सप्रेशन है. यह टास्क, Firebase Hosting में डिप्लॉयमेंट पूरा होने पर Slack पर एक मैसेज भेजता है.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

messageSlack.sh स्क्रिप्ट फ़ाइल, प्रोजेक्ट डायरेक्ट्री में मौजूद होती है और ऐसी दिखती है:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

डिप्लॉय की जा सकने वाली किसी भी ऐसेट के लिए, predeploy और postdeploy हुक सेट अप किए जा सकते हैं. ध्यान दें कि firebase deploy चलाने पर, आपकी firebase.json फ़ाइल में तय किए गए, डिप्लॉय से पहले और डिप्लॉय के बाद के सभी टास्क ट्रिगर हो जाते हैं. अगर आपको सिर्फ़ किसी खास Firebase सेवा से जुड़े टास्क चलाने हैं, तो आंशिक डिप्लॉयमेंट कमांड का इस्तेमाल करें.

predeploy और postdeploy, दोनों हुक स्क्रिप्ट के स्टैंडर्ड आउटपुट और गड़बड़ी स्ट्रीम को टर्मिनल पर प्रिंट करते हैं. अगर अनुरोध पूरा नहीं होता है, तो इन बातों का ध्यान रखें:

  • अगर प्रीडिप्लॉय हुक उम्मीद के मुताबिक पूरा नहीं होता है, तो डिप्लॉयमेंट रद्द कर दिया जाता है.
  • अगर किसी वजह से डिप्लॉयमेंट पूरा नहीं होता है, तो postdeploy हुक ट्रिगर नहीं होते हैं.

एनवायरमेंट वैरिएबल

प्रीडिप्लॉय और पोस्टडिप्लॉय हुक में चलने वाली स्क्रिप्ट में, ये एनवायरमेंट वैरिएबल उपलब्ध होते हैं:

  • $GCLOUD_PROJECT: ऐक्टिव प्रोजेक्ट का प्रोजेक्ट आईडी
  • $PROJECT_DIR: वह रूट डायरेक्ट्री जिसमें firebase.json फ़ाइल मौजूद है
  • $RESOURCE_DIR: (सिर्फ़ hosting और functions स्क्रिप्ट के लिए) यह उस डायरेक्ट्री का पाथ होता है जिसमें डिप्लॉय किए जाने वाले Hosting या Cloud Functions संसाधन मौजूद होते हैं

एक से ज़्यादा Realtime Database इंस्टेंस मैनेज करना

एक Firebase प्रोजेक्ट में कई Firebase Realtime Database इंस्टेंस हो सकते हैं. डिफ़ॉल्ट रूप से, सीएलआई कमांड आपके डिफ़ॉल्ट डेटाबेस इंस्टेंस के साथ इंटरैक्ट करती हैं.

हालांकि, --instance DATABASE_NAME फ़्लैग का इस्तेमाल करके, डिफ़ॉल्ट नहीं है ऐसे डेटाबेस इंस्टेंस के साथ इंटरैक्ट किया जा सकता है. --instance फ़्लैग के साथ इन कमांड का इस्तेमाल किया जा सकता है:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

कमांड रेफ़रंस

सीएलआई के एडमिन से जुड़े निर्देश

आदेश ब्यौरा
सहायता सीएलआई या खास कमांड के बारे में सहायता से जुड़ी जानकारी दिखाता है.
init यह कमांड, मौजूदा डायरेक्ट्री में एक नया Firebase प्रोजेक्ट जोड़ती है और उसे सेट अप करती है. इस कमांड से, मौजूदा डायरेक्ट्री में firebase.json कॉन्फ़िगरेशन फ़ाइल बन जाती है.
login इस कमांड से, आपके Google खाते के ज़रिए सीएलआई की पुष्टि की जाती है. इसके लिए, वेब ब्राउज़र का ऐक्सेस ज़रूरी है.
ऐसे रिमोट एनवायरमेंट में सीएलआई में लॉग इन करने के लिए जहां localhost को ऐक्सेस करने की अनुमति नहीं है, --no-localhost फ़्लैग का इस्तेमाल करें.
login:ci यह कुकी, बिना इंटरैक्टिव वाले एनवायरमेंट में इस्तेमाल करने के लिए, पुष्टि करने वाला टोकन जनरेट करती है.
logout इस कमांड से, सीएलआई में मौजूद आपके Google खाते से साइन आउट हो जाता है.
open इससे ब्राउज़र में, प्रोजेक्ट से जुड़े काम के संसाधन खुलते हैं.
projects:list इसमें उन सभी Firebase प्रोजेक्ट की सूची होती है जिन्हें ऐक्सेस करने की अनुमति आपके पास है.
इस्तेमाल करें इस कमांड से, CLI के लिए चालू Firebase प्रोजेक्ट सेट किया जाता है.
प्रोजेक्ट के उपनाम मैनेज करता है.

प्रोजेक्ट मैनेजमेंट से जुड़े निर्देश

आदेश ब्यौरा
Firebase प्रोजेक्ट मैनेज करना
projects:addfirebase इस कमांड से, मौजूदा Google Cloud प्रोजेक्ट में Firebase संसाधन जोड़े जाते हैं.
projects:create यह एक नया Google Cloud प्रोजेक्ट बनाता है. इसके बाद, नए प्रोजेक्ट में Firebase संसाधन जोड़ता है.
projects:list इसमें उन सभी Firebase प्रोजेक्ट की सूची होती है जिन्हें ऐक्सेस करने की अनुमति आपके पास है.
Firebase ऐप्लिकेशन (iOS, Android, वेब) मैनेज करना
apps:create इस कमांड से, चालू प्रोजेक्ट में एक नया Firebase ऐप्लिकेशन बनाया जाता है.
apps:list इस कुकी में, चालू प्रोजेक्ट में रजिस्टर किए गए Firebase ऐप्लिकेशन की सूची होती है.
apps:sdkconfig यह कमांड, Firebase ऐप्लिकेशन के Google सेवाओं के कॉन्फ़िगरेशन को प्रिंट करती है.
setup:web अब काम नहीं करता. इसके बजाय, apps:sdkconfig का इस्तेमाल करें और प्लैटफ़ॉर्म आर्ग्युमेंट के तौर पर web तय करें.
इस कमांड से, Firebase वेब ऐप्लिकेशन के Google सेवाओं के कॉन्फ़िगरेशन की जानकारी मिलती है.
SHA सर्टिफ़िकेट हैश मैनेज करना (सिर्फ़ Android के लिए)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
यह फ़ंक्शन, Firebase Android ऐप्लिकेशन में SHA सर्टिफ़िकेट हैश जोड़ता है.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
इस तरीके से, बताए गए Firebase Android ऐप्लिकेशन से, बताए गए SHA सर्टिफ़िकेट हैश को मिटाया जाता है.
apps:android:sha:list \
FIREBASE_APP_ID
इस कमांड से, दिए गए Firebase Android ऐप्लिकेशन के लिए SHA सर्टिफ़िकेट हैश की सूची मिलती है.

डिप्लॉयमेंट और लोकल डेवलपमेंट

इन कमांड की मदद से, Firebase Hosting साइट को डिप्लॉय किया जा सकता है और उससे इंटरैक्ट किया जा सकता है.

आदेश ब्यौरा
डिप्लॉय यह आपके प्रोजेक्ट डायरेक्ट्री से कोड और ऐसेट को ऐक्टिव प्रोजेक्ट में डिप्लॉय करता है. Firebase Hosting के लिए, firebase.json कॉन्फ़िगरेशन फ़ाइल ज़रूरी है.
serve यह आपके Firebase Hosting कॉन्फ़िगरेशन के साथ एक लोकल वेब सर्वर शुरू करता है. Firebase Hosting के लिए, firebase.json कॉन्फ़िगरेशन फ़ाइल ज़रूरी है.

App Distribution निर्देश

आदेश ब्यौरा
appdistribution:distribute \
--app FIREBASE_APP_ID
इससे बिल्ड, टेस्टर के लिए उपलब्ध हो जाता है.
appdistribution:testers:add इस फ़ंक्शन का इस्तेमाल करके, प्रोजेक्ट में टेस्टर जोड़े जाते हैं.
appdistribution:testers:remove इससे प्रोजेक्ट से टेस्टर हटा दिए जाते हैं.

App Hosting निर्देश

आदेश ब्यौरा
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
यह एक ही कोडबेस से लिंक किए गए मैनेज किए जा रहे संसाधनों का कलेक्शन बनाता है. इसमें App Hosting बैकएंड शामिल होता है. ज़रूरत पड़ने पर, Firebase ऐप्लिकेशन आईडी का इस्तेमाल करके, किसी मौजूदा Firebase वेब ऐप्लिकेशन के बारे में बताएं.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
यह किसी बैकएंड की खास जानकारी दिखाता है. इसमें सार्वजनिक यूआरएल भी शामिल है.
apphosting:backends:list \
--project PROJECT_ID
यह किसी प्रोजेक्ट से जुड़े सभी चालू बैकएंड की सूची वापस लाता है.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
यह प्रोजेक्ट से बैकएंड को मिटाता है.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
यह कुकी, ऐप्लिकेशन इम्यूलेशन में इस्तेमाल करने के लिए सीक्रेट एक्सपोर्ट करती है.
डिफ़ॉल्ट रूप से, apphosting.yaml में सेव किए गए सीक्रेट का इस्तेमाल करता है. इसके अलावा, --secrets का इस्तेमाल करके, ऐसे किसी भी एनवायरमेंट के बारे में बताया जा सकता है जिसमें apphosting.ENVIRONMENT_NAME.yaml फ़ाइल मौजूद हो.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
इस फ़ंक्शन से, मैन्युअल तरीके से ट्रिगर किया गया रोलआउट बनाया जाता है.
विकल्प के तौर पर, किसी शाखा या किसी खास कमिट के लिए, सबसे नया कमिट तय करें. अगर कोई विकल्प नहीं दिया गया है, तो ब्रांच की सूची से चुनने के लिए प्रॉम्प्ट करता है.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
यह कुकी, Secret Manager में सीक्रेट मटीरियल सेव करती है.
इसके अलावा, उस फ़ाइल का पाथ दें जिससे सीक्रेट डेटा को पढ़ा जा सकता है. स्टैंडर्ड इनपुट से सीक्रेट डेटा पढ़ने के लिए, इसे _ पर सेट करें.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
यह बैकएंड सेवा खाते को दिए गए सीक्रेट का ऐक्सेस देता है, ताकि App Hosting इसे बिल्ड या रन टाइम में ऐक्सेस कर सके.
apphosting:secrets:describe KEY \
--project PROJECT_ID
किसी सीक्रेट और उसके वर्शन के लिए मेटाडेटा मिलता है.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
यह फ़ंक्शन, सीक्रेट और उसके वर्शन के आधार पर सीक्रेट वैल्यू को ऐक्सेस करता है. यह डिफ़ॉल्ट रूप से, नए वर्शन को ऐक्सेस करता है.

Authentication (उपयोगकर्ता को मैनेज करने से जुड़ी) कमांड

आदेश ब्यौरा
auth:export यह विकल्प, चालू प्रोजेक्ट के उपयोगकर्ता खातों को JSON या CSV फ़ाइल में एक्सपोर्ट करता है. ज़्यादा जानकारी के लिए, auth:import और auth:export पेज पर जाएं.
auth:import यह कमांड, JSON या CSV फ़ाइल से उपयोगकर्ता खातों को चालू प्रोजेक्ट में इंपोर्ट करती है. ज़्यादा जानकारी के लिए, auth:import और auth:export पेज पर जाएं.

Cloud Firestore निर्देश

आदेश ब्यौरा
firestore:locations

अपने Cloud Firestore डेटाबेस के लिए उपलब्ध जगहों की सूची बनाएं.

firestore:databases:create DATABASE_ID

अपने Firebase प्रोजेक्ट में नेटिव मोड में डेटाबेस इंस्टेंस बनाएं.

इस कमांड में ये फ़्लैग इस्तेमाल किए जा सकते हैं:

  • --location <region name> का इस्तेमाल करके, डेटाबेस को डिप्लॉय करने की जगह तय करें. ध्यान दें कि उपलब्ध जगहों की सूची देखने के लिए, firebase firestore:locations कमांड का इस्तेमाल किया जा सकता है. ज़रूरी है.
  • --delete-protection <deleteProtectionState> का इस्तेमाल करके, चुने गए डेटाबेस को मिटाने की अनुमति दी जा सकती है या उसे मिटाने से रोका जा सकता है. ENABLED या DISABLED को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, यह DISABLED पर सेट होता है.
  • --point-in-time-recovery <PITRState> का इस्तेमाल करके, यह सेट किया जा सकता है कि पिछले समय की रिकवरी की सुविधा चालू है या नहीं. ENABLED या DISABLED को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, यह DISABLED पर सेट होता है. ज़रूरी नहीं.
firestore:databases:list

अपने Firebase प्रोजेक्ट में डेटाबेस की सूची बनाएं.

firestore:databases:get DATABASE_ID

अपने Firebase प्रोजेक्ट में मौजूद किसी डेटाबेस के लिए, डेटाबेस कॉन्फ़िगरेशन पाएं.

firestore:databases:update DATABASE_ID

आपके Firebase प्रोजेक्ट में मौजूद किसी डेटाबेस के डेटाबेस कॉन्फ़िगरेशन को अपडेट करता है.

कम से कम एक फ़्लैग होना ज़रूरी है. इस कमांड में ये फ़्लैग इस्तेमाल किए जा सकते हैं:

  • --delete-protection <deleteProtectionState> का इस्तेमाल करके, चुने गए डेटाबेस को मिटाने की अनुमति दी जा सकती है या उसे मिटाने से रोका जा सकता है. ENABLED या DISABLED को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, यह DISABLED पर सेट होता है.
  • --point-in-time-recovery <PITRState> का इस्तेमाल करके, यह सेट किया जा सकता है कि पिछले समय की रिकवरी की सुविधा चालू है या नहीं. ENABLED या DISABLED को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, यह DISABLED पर सेट होता है. ज़रूरी नहीं.
firestore:databases:delete DATABASE_ID

अपने Firebase प्रोजेक्ट में मौजूद किसी डेटाबेस को मिटाना.

firestore:indexes

अपने Firebase प्रोजेक्ट में मौजूद डेटाबेस के लिए इंडेक्स की सूची बनाएं.

इस कमांड में यह फ़्लैग इस्तेमाल किया जाता है:

  • --database DATABASE_ID का इस्तेमाल, उस डेटाबेस का नाम तय करने के लिए करें जिसके इंडेक्स की सूची बनानी है. अगर यह विकल्प नहीं दिया जाता है, तो डिफ़ॉल्ट डेटाबेस के लिए इंडेक्स की सूची बनाई जाती है.
firestore:delete

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

ध्यान दें कि सीएलआई की मदद से Cloud Firestore डेटा मिटाने पर, पढ़ने और मिटाने का शुल्क लगता है. ज़्यादा जानकारी के लिए, Cloud Firestore बिलिंग के बारे में जानकारी लेख पढ़ें.

इस कमांड में यह फ़्लैग इस्तेमाल किया जाता है:

  • --database DATABASE_ID इस विकल्प का इस्तेमाल करके, उस डेटाबेस का नाम तय किया जा सकता है जिससे दस्तावेज़ मिटाए जाते हैं. अगर यह जानकारी नहीं दी जाती है, तो दस्तावेज़ों को डिफ़ॉल्ट डेटाबेस से मिटा दिया जाता है. ज़रूरी नहीं.

Cloud Functions for Firebase निर्देश

आदेश ब्यौरा
functions:config:clone यह किसी दूसरे प्रोजेक्ट के एनवायरमेंट को चालू Firebase प्रोजेक्ट में क्लोन करता है.
functions:config:get यह चालू प्रोजेक्ट के Cloud Functions की मौजूदा कॉन्फ़िगरेशन वैल्यू को फिर से हासिल करता है.
functions:config:set यह कुकी, एक्टिव प्रोजेक्ट के Cloud Functions की रनटाइम कॉन्फ़िगरेशन वैल्यू सेव करती है.
functions:config:unset यह कमांड, एक्टिव प्रोजेक्ट के रनटाइम कॉन्फ़िगरेशन से वैल्यू हटाती है.
functions:log यह कुकी, डिप्लॉय किए गए Cloud Functions से लॉग पढ़ती है.

ज़्यादा जानकारी के लिए, एनवायरमेंट कॉन्फ़िगरेशन का दस्तावेज़ देखें.

Crashlytics निर्देश

आदेश ब्यौरा
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
यह तय की गई Android रिसॉर्स (एक्सएमएल) फ़ाइल में, यूनीक मैपिंग फ़ाइल आईडी जनरेट करता है.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
इस ऐप्लिकेशन के लिए, Proguard के साथ काम करने वाली मैपिंग (TXT) फ़ाइल अपलोड करता है. साथ ही, इसे बताई गई Android रिसॉर्स (एक्सएमएल) फ़ाइल में बताए गए मैपिंग फ़ाइल आईडी से जोड़ता है.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
यह Android पर नेटिव लाइब्रेरी क्रैश के लिए, Crashlytics के साथ काम करने वाली सिंबल फ़ाइल जनरेट करता है. साथ ही, इसे Firebase सर्वर पर अपलोड करता है.

Data Connect निर्देश

इन कमांड और उनके इस्तेमाल के उदाहरणों के बारे में ज़्यादा जानकारी, Data Connect सीएलआई रेफ़रंस गाइड में दी गई है.

आदेश ब्यौरा
dataconnect:services:list आपके Firebase प्रोजेक्ट में डिप्लॉय की गई सभी Data Connect सेवाओं की सूची दिखाता है.
dataconnect:sql:diff \
SERVICE_ID
चुनी गई सेवा के लिए, यह लोकल Data Connect स्कीमा और Cloud SQL डेटाबेस स्कीमा के बीच अंतर दिखाता है.
dataconnect:sql:migrate \
--force \
SERVICE_ID
यह आपके Cloud SQL डेटाबेस के स्कीमा को माइग्रेट करके, आपके लोकल Data Connect स्कीमा से मैच करता है.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
यह विकल्प, चुने गए उपयोगकर्ता या सेवा खाते के ईमेल पते को SQL भूमिका असाइन करता है.
--role फ़्लैग के लिए, दी जाने वाली एसक्यूएल भूमिका इनमें से कोई एक होनी चाहिए: owner, writer या reader.
--email फ़्लैग के लिए, उस उपयोगकर्ता या सेवा खाते का ईमेल पता दें जिसे भूमिका असाइन करनी है.
dataconnect:sdk:generate यह आपके Data Connect कनेक्टर के लिए टाइप किए गए एसडीके जनरेट करता है.

Extensions निर्देश

आदेश ब्यौरा
ext Firebase Extensions निर्देशों का इस्तेमाल करने के तरीके के बारे में जानकारी दिखाता है.
इस कमांड से, ऐक्टिव प्रोजेक्ट में इंस्टॉल किए गए एक्सटेंशन इंस्टेंस की सूची मिलती है.
ext:configure \
EXTENSION_INSTANCE_ID
यह फ़ंक्शन, आपके एक्सटेंशन मेनिफ़ेस्ट में मौजूद एक्सटेंशन इंस्टेंस के पैरामीटर की वैल्यू को फिर से कॉन्फ़िगर करता है.
ext:info \
PUBLISHER_ID/EXTENSION_ID
यह एक्सटेंशन के बारे में पूरी जानकारी दिखाता है.
ext:install \
PUBLISHER_ID/EXTENSION_ID
यह आपके एक्सटेंशन मेनिफ़ेस्ट में एक्सटेंशन का नया इंस्टेंस जोड़ता है.
ext:list यह कमांड, किसी Firebase प्रोजेक्ट में इंस्टॉल किए गए सभी एक्सटेंशन इंस्टेंस की सूची दिखाती है.
यह हर एक्सटेंशन के लिए इंस्टेंस आईडी प्रिंट करता है.
ext:uninstall \
EXTENSION_INSTANCE_ID
यह आपके एक्सटेंशन मेनिफ़ेस्ट से एक्सटेंशन इंस्टेंस को हटाता है.
ext:update \
EXTENSION_INSTANCE_ID
इस फ़ंक्शन का इस्तेमाल करके, एक्सटेंशन इंस्टेंस को एक्सटेंशन मेनिफ़ेस्ट में मौजूद सबसे नए वर्शन पर अपडेट किया जाता है.
ext:export यह कमांड, आपके प्रोजेक्ट में इंस्टॉल किए गए सभी एक्सटेंशन इंस्टेंस को आपके एक्सटेंशन मेनिफ़ेस्ट में एक्सपोर्ट करती है.

Extensions पब्लिशर के निर्देश

आदेश ब्यौरा
ext:dev:init यह कमांड, मौजूदा डायरेक्ट्री में नए एक्सटेंशन के लिए, स्केलेटन कोडबेस को शुरू करती है.
ext:dev:list \
PUBLISHER_ID
इस कमांड से, पब्लिशर की ओर से अपलोड किए गए सभी एक्सटेंशन की सूची प्रिंट की जाती है.
ext:dev:register यह Firebase प्रोजेक्ट को एक्सटेंशन पब्लिशर प्रोजेक्ट के तौर पर रजिस्टर करता है.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
यह फ़ंक्शन, वर्शन प्रेडिकेट से मेल खाने वाले एक्सटेंशन वर्शन को बंद कर देता है.
वर्शन प्रेडिकेट, एक वर्शन (जैसे कि 1.0.0) या वर्शन की कोई रेंज (जैसे कि >1.0.0) हो सकता है.
अगर कोई वर्शन प्रेडिकेट नहीं दिया जाता है, तो उस एक्सटेंशन के सभी वर्शन बंद हो जाते हैं.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
यह फ़ंक्शन, एक्सटेंशन के उन वर्शन को अनडेप्रिकेट करता है जो वर्शन प्रेडिकेट से मेल खाते हैं.
वर्शन प्रेडिकेट, एक वर्शन (जैसे कि 1.0.0) या वर्शन की एक रेंज (जैसे कि >1.0.0) हो सकता है.
अगर कोई वर्शन प्रेडिकेट नहीं दिया जाता है, तो उस एक्सटेंशन के सभी वर्शन को अनडिप्रेकेट कर दिया जाता है.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
एक्सटेंशन का नया वर्शन अपलोड करता है.
ext:dev:usage \
PUBLISHER_ID
यह कुकी, पब्लिशर की ओर से अपलोड किए गए एक्सटेंशन के लिए, इंस्टॉल की संख्या और इस्तेमाल से जुड़ी मेट्रिक दिखाती है.

Hosting निर्देश

आदेश ब्यौरा
hosting:disable

चालू Firebase प्रोजेक्ट के लिए, Firebase Hosting का ट्रैफ़िक दिखाना बंद कर देता है.

इस कमांड को चलाने के बाद, आपके प्रोजेक्ट के Hosting यूआरएल पर "साइट नहीं मिली" मैसेज दिखेगा.

Hosting साइटों का मैनेजमेंट
firebase hosting:sites:create \
SITE_ID

यह फ़ंक्शन, चालू Firebase प्रोजेक्ट में बताई गई SITE_ID का इस्तेमाल करके नई Hosting साइट बनाता है

(ज़रूरी नहीं) नए साइट से जोड़ने के लिए, मौजूदा Firebase वेब ऐप्लिकेशन के बारे में बताएं. इसके लिए, यह फ़्लैग पास करें: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

यह कमांड, बताई गई Hosting साइट को मिटा देती है

साइट को मिटाने से पहले, CLI पुष्टि करने का प्रॉम्प्ट दिखाता है.

(ज़रूरी नहीं) पुष्टि करने वाले प्रॉम्प्ट को स्किप करने के लिए, यहां दिए गए फ़्लैग पास करें: -f या --force

firebase hosting:sites:get \
SITE_ID

यह फ़ंक्शन, दी गई Hosting साइट के बारे में जानकारी देता है

firebase hosting:sites:list

चालू Firebase प्रोजेक्ट के लिए, सभी Hosting साइटों की सूची दिखाता है

प्रीव्यू चैनल मैनेज करना
firebase hosting:channel:create \
CHANNEL_ID

यह फ़ंक्शन, default Hosting साइट में, तय किए गए CHANNEL_ID का इस्तेमाल करके एक नया प्रीव्यू चैनल बनाता है

इस निर्देश को चैनल पर लागू नहीं किया जाता.

firebase hosting:channel:delete \
CHANNEL_ID

यह कमांड, तय किए गए प्रीव्यू चैनल को मिटा देती है

किसी साइट के लाइव चैनल को मिटाया नहीं जा सकता.

firebase hosting:channel:deploy \
CHANNEL_ID

यह आपके Hosting कॉन्टेंट और कॉन्फ़िगरेशन को चुने गए प्रीव्यू चैनल पर डिप्लॉय करता है

अगर प्रीव्यू चैनल मौजूद नहीं है, तो यह कमांड चैनल पर डिप्लॉय करने से पहले, डिफ़ॉल्ट Hosting साइट में चैनल बनाती है.

firebase hosting:channel:list यह डिफ़ॉल्ट Hosting साइट पर मौजूद सभी चैनलों (इसमें "लाइव" चैनल भी शामिल है) की सूची दिखाता है
firebase hosting:channel:open \
CHANNEL_ID
यह फ़ंक्शन, ब्राउज़र में तय किए गए चैनल का यूआरएल खोलता है. अगर ब्राउज़र में यूआरएल नहीं खोला जा सकता, तो यह यूआरएल दिखाता है
वर्शन क्लोन करना
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

यह कमांड, "सोर्स" चैनल पर हाल ही में डिप्लॉय किए गए वर्शन को, "टारगेट" चैनल पर क्लोन करती है

यह कमांड, तय किए गए "टारगेट" चैनल पर भी डिप्लॉय होती है. अगर "target" चैनल अभी तक मौजूद नहीं है, तो यह निर्देश "target" Hosting साइट में एक नया प्रीव्यू चैनल बनाता है. इसके बाद, उसे चैनल पर डिप्लॉय करता है.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

यह कमांड, चुने गए वर्शन को चुने गए "टारगेट" चैनल पर क्लोन करती है

यह कमांड, तय किए गए "टारगेट" चैनल पर भी डिप्लॉय होती है. अगर "target" चैनल अभी तक मौजूद नहीं है, तो यह निर्देश "target" Hosting साइट में एक नया प्रीव्यू चैनल बनाता है. इसके बाद, उसे चैनल पर डिप्लॉय करता है.

आपको Firebase कंसोल के Hosting डैशबोर्ड में VERSION_ID दिखेगा.

Realtime Database निर्देश

ध्यान दें कि Realtime Database का शुरुआती, डिफ़ॉल्ट इंस्टेंस, Firebase कंसोल में बनाया जा सकता है. इसके अलावा, सामान्य firebase init वर्कफ़्लो या खास firebase init database फ़्लो का इस्तेमाल करके भी इसे बनाया जा सकता है.

उदाहरण बनाने के बाद, उन्हें मैनेज किया जा सकता है. इसके बारे में एक से ज़्यादा Realtime Database इंस्टेंस मैनेज करना लेख में बताया गया है.

आदेश ब्यौरा
database:get यह कमांड, चालू प्रोजेक्ट के डेटाबेस से डेटा फ़ेच करती है और उसे JSON के तौर पर दिखाती है. यह इंडेक्स किए गए डेटा पर क्वेरी करने की सुविधा देता है.
database:instances:create यह विकल्प, दिए गए इंस्टेंस के नाम से डेटाबेस इंस्टेंस बनाता है. यह किसी तय किए गए क्षेत्र में डेटाबेस बनाने के लिए, --location विकल्प को स्वीकार करता है. इस विकल्प के साथ इस्तेमाल किए जाने वाले क्षेत्र के नामों के लिए, अपने प्रोजेक्ट के लिए जगहें चुनना लेख पढ़ें. अगर मौजूदा प्रोजेक्ट के लिए कोई डेटाबेस इंस्टेंस मौजूद नहीं है, तो आपको इंस्टेंस बनाने के लिए firebase init फ़्लो चलाने के लिए कहा जाएगा.
database:instances:list इस प्रोजेक्ट के सभी डेटाबेस इंस्टेंस की सूची बनाएं. यह किसी देश/इलाके में डेटाबेस की सूची बनाने के लिए, --location विकल्प को स्वीकार करता है. इस विकल्प के साथ इस्तेमाल किए जाने वाले क्षेत्र के नामों के लिए, अपने प्रोजेक्ट के लिए जगहें चुनना लेख पढ़ें.
database:profile यह कुकी, ऐक्टिव प्रोजेक्ट के डेटाबेस पर की गई कार्रवाइयों की प्रोफ़ाइल बनाती है. ज़्यादा जानकारी के लिए, Realtime Database ऑपरेशन के टाइप देखें.
database:push यह फ़ंक्शन, चालू प्रोजेक्ट के डेटाबेस में मौजूद सूची में, तय की गई जगह पर नया डेटा जोड़ता है. यह किसी फ़ाइल, STDIN या कमांड-लाइन आर्ग्युमेंट से इनपुट लेता है.
database:remove यह फ़ंक्शन, चालू प्रोजेक्ट के डेटाबेस में किसी तय जगह पर मौजूद सारा डेटा मिटा देता है.
database:set यह फ़ंक्शन, चालू प्रोजेक्ट के डेटाबेस में किसी तय जगह पर मौजूद सभी डेटा को बदल देता है. यह किसी फ़ाइल, STDIN या कमांड-लाइन आर्ग्युमेंट से इनपुट लेता है.
database:update यह फ़ंक्शन, चालू प्रोजेक्ट के डेटाबेस में किसी तय जगह पर कुछ डेटा अपडेट करता है. यह किसी फ़ाइल, STDIN या कमांड-लाइन आर्ग्युमेंट से इनपुट लेता है.

Remote Config निर्देश

आदेश ब्यौरा
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
इसमें टेम्प्लेट के सबसे नए दस वर्शन की सूची होती है. सभी मौजूदा वर्शन वापस पाने के लिए, 0 तय करें. इसके अलावा, लौटाए जाने वाले वर्शन की संख्या सीमित करने के लिए, --limit विकल्प पास करें.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
यह टेंप्लेट को वर्शन के हिसाब से फ़ेच करता है (डिफ़ॉल्ट रूप से, यह सबसे नया वर्शन होता है). साथ ही, पैरामीटर ग्रुप, पैरामीटर, और शर्त के नाम और वर्शन को टेबल में दिखाता है. इसके अलावा, -o, FILENAME का इस्तेमाल करके, आउटपुट को किसी फ़ाइल में लिखा जा सकता है.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
यह फ़ंक्शन, Remote Config टेंप्लेट को पिछले किसी वर्शन पर रोल बैक करता है. इसके लिए, पिछले वर्शन का नंबर तय किया जाता है. अगर कोई नंबर तय नहीं किया जाता है, तो यह फ़ंक्शन, टेंप्लेट को पिछले वर्शन (मौजूदा वर्शन -1) पर रोल बैक करता है. जब तक --force पास नहीं हो जाता, तब तक रोलबैक करने से पहले Y/N प्रॉम्प्ट करता है.