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

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

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

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

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

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

Windows macOS Linux

Windows

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

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

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

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

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

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

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

  3. लॉग इन करें और सीएलआई की जांच करें.

npm

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

  1. nvm-windows (Node वर्शन मैनेजर) का इस्तेमाल करके, 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 कमांड को चालू करती है.

  2. लॉग इन करें और सीएलआई की जांच करें.

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

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

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

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

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

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

npm

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

  1. nvm (Node वर्शन मैनेजर) का इस्तेमाल करके, 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. अपने Firebase प्रोजेक्ट की सूची बनाकर, यह जांच करें कि CLI सही तरीके से इंस्टॉल है या नहीं और वह आपके खाते को ऐक्सेस कर रहा है या नहीं. यह कमांड चलाएं:

    firebase projects:list

    दिखाई गई सूची, 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 की मदद से पुष्टि करने के लिए, ब्राउज़र की ज़रूरत होती है. हालांकि, यह CLI, CI और दूसरे हेडलेस एनवायरमेंट के साथ पूरी तरह से काम करता है.

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

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

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

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

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

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

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

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

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

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

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

firebase init

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

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

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

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

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

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

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

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

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

firebase.json फ़ाइल

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

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

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

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

{
  "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 डेटाबेस हैं, तो हर डेटाबेस के साथ अलग-अलग Cloud Firestore Security Rules और डेटाबेस इंडेक्स सोर्स फ़ाइलों को जोड़ने के लिए, अपनी firebase.json फ़ाइल में बदलाव करें. फ़ाइल में बदलाव करके, उसे 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 के नाम से असाइन किया है. अगर आपको उस Firebase प्रोजेक्ट के लिए एक ही कमांड चलाना है जिसे आपने prod उपनाम असाइन किया है, तो उदाहरण के लिए, firebase deploy --project=prod चलाया जा सकता है.

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

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

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

अपने Firebase प्रोजेक्ट को स्थानीय तौर पर दिखाना और टेस्ट करना

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

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

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

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

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

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

    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 सीएलआई इन निर्देशों और विकल्पों के साथ काम करता है:

  • सभी क्षेत्रों में, दिए गए नाम से मेल खाने वाले सभी फ़ंक्शन मिटा देता है:

    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 कॉन्फ़िगरेशन फ़ाइल में bash स्क्रिप्ट जोड़ें. 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, दोनों हुक टर्मिनल पर स्क्रिप्ट के स्टैंडर्ड आउटपुट और गड़बड़ी वाली स्ट्रीम को प्रिंट करते हैं. गड़बड़ी के मामलों के लिए, इन बातों का ध्यान रखें:

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

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

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

  • $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 आपके Firebase खाते के लिए, CLI की पुष्टि करता है. आपके पास किसी वेब ब्राउज़र का ऐक्सेस होना चाहिए.
रिमोट एनवायरमेंट में क्लाइंट-लाइन इंटरफ़ेस (सीएलआई) में लॉग इन करने के लिए, --no-localhost फ़्लैग का इस्तेमाल करें. ऐसा उन एनवायरमेंट में किया जा सकता है जहां localhost को ऐक्सेस करने की अनुमति नहीं है.
login:ci यह ऐसे एनवायरमेंट में इस्तेमाल करने के लिए, पुष्टि करने वाला टोकन जनरेट करता है जहां इंटरैक्शन की ज़रूरत नहीं होती.
लॉगआउट करें आपके Firebase खाते से CLI को साइन आउट करता है.
open प्रोजेक्ट के काम के संसाधनों के लिए ब्राउज़र खोलता है.
projects:list उन सभी Firebase प्रोजेक्ट की सूची दिखाता है जिनका ऐक्सेस आपके पास है.
use 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
आपके स्थानीय Data Connect स्कीमा से मैच करने के लिए, आपके Cloud SQL डेटाबेस के स्कीमा को माइग्रेट करता है.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
यह टूल, किसी उपयोगकर्ता या सेवा खाते के ईमेल पते को SQL की भूमिका देता है.
--role फ़्लैग के लिए, SQL भूमिका इनमें से कोई एक होनी चाहिए: owner, writer या reader.
--email फ़्लैग के लिए, उस उपयोगकर्ता या सेवा खाते का ईमेल पता डालें जिसे भूमिका देनी है.
dataconnect:sdk:generate आपके Data Connect कनेक्टर के लिए, टाइप किए गए SDK टूल जनरेट करता है.

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

दिए गए SITE_ID का इस्तेमाल करके, चालू Firebase प्रोजेक्ट में नई Hosting साइट बनाता है

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

firebase hosting:sites:delete \
SITE_ID

बताई गई Hosting साइट को मिटाता है

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

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

firebase hosting:sites:get \
SITE_ID

बताई गई Hosting साइट के बारे में जानकारी दिखाता है

firebase hosting:sites:list

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

झलक दिखाने वाले चैनलों को मैनेज करना
firebase hosting:channel:create \
CHANNEL_ID

दिए गए CHANNEL_ID का इस्तेमाल करके, डिफ़ॉल्ट Hosting साइट में झलक वाला नया चैनल बनाता है

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

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

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

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

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

चुने गए वर्शन को चुने गए "टारगेट" चैनल पर क्लोन करता है

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

VERSION_ID को Firebase कंसोल के Hosting डैशबोर्ड में देखा जा सकता है.

Realtime Database निर्देश

ध्यान दें कि Firebase कंसोल में या सामान्य firebase init वर्कफ़्लो या किसी खास firebase init database फ़्लो का इस्तेमाल करके, अपना शुरुआती डिफ़ॉल्ट Realtime 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
टेम्प्लेट के 10 सबसे नए वर्शन की सूची दिखाता है. सभी मौजूदा वर्शन दिखाने के लिए, 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 के लिए प्रॉम्प्ट दिखाता है.