Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

पर्यावरण विन्यास

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

अपनी परियोजना के लिए पर्यावरण विन्यास सेट करें

पर्यावरण डेटा संग्रहीत करने के लिए, आप firebase functions:config:set उपयोग कर सकते हैं firebase functions:config:set फायरबेस सीएलआई में कमांड firebase functions:config:set । प्रत्येक कुंजी को समूह से संबंधित कॉन्फ़िगरेशन में एक साथ अवधियों का उपयोग करके नामांकित किया जा सकता है। ध्यान रखें कि कुंजियों में केवल लोअरकेस वर्ण स्वीकार किए जाते हैं ; अपरकेस वर्णों की अनुमति नहीं है।

उदाहरण के लिए, "कुछ सेवा" के लिए क्लाइंट आईडी और एपीआई कुंजी को स्टोर करने के लिए, आप चला सकते हैं:

 firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"
 

वर्तमान परिवेश कॉन्फ़िगरेशन प्राप्त करें

अपनी परियोजना के लिए वर्तमान में पर्यावरण कॉन्फिगर में क्या संग्रहित है, इसका निरीक्षण करने के लिए, आप firebase functions:config:get उपयोग कर सकते हैं firebase functions:config:get । यह JSON को कुछ इस तरह आउटपुट करेगा:

 {
  "someservice": {
    "key":"THE API KEY",
    "id":"THE CLIENT ID"
  }
}
 

यह कार्यक्षमता Google क्लाउड रनटाइम कॉन्फ़िगरेशन API पर आधारित है

किसी फ़ंक्शन में पर्यावरण कॉन्फ़िगरेशन एक्सेस करें

कुछ कॉन्फ़िगरेशन स्वचालित रूप से आरक्षित firebase नेमस्पेस के तहत प्रदान किया जाता है। पर्यावरण कॉन्फ़िगरेशन फ़ंक्शन के माध्यम से आपके चल समारोह के अंदर उपलब्ध कराया जाता है functions.config() । ऊपर कॉन्फ़िगरेशन का उपयोग करने के लिए, आपका कोड इस तरह दिखाई दे सकता है:

 const functions = require('firebase-functions');
const request = require('request-promise');

exports.userCreated = functions.database.ref('/users/{id}').onWrite(event => {
  let email = event.data.child('email').val();

  return request({
    url: 'https://someservice.com/api/some/call',
    headers: {
      'X-Client-ID': functions.config().someservice.id,
      'Authorization': `Bearer ${functions.config().someservice.key}`
    },
    body: {email: email}
  });
});
 

एक मॉड्यूल को इनिशियलाइज़ करने के लिए पर्यावरण कॉन्फ़िगरेशन का उपयोग करें

कुछ नोड मॉड्यूल किसी भी कॉन्फ़िगरेशन के बिना तैयार हैं। अन्य मॉड्यूल को सही ढंग से आरंभ करने के लिए अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है। हम आपको हार्ड-कोडिंग के बजाय इस कॉन्फ़िगरेशन को पर्यावरण कॉन्फ़िगरेशन चर में संग्रहीत करने की सलाह देते हैं। इससे आपको अपने कोड को अधिक पोर्टेबल रखने में मदद मिलती है, जिससे आप अपने एप्लिकेशन को ओपन सोर्स कर सकते हैं या आसानी से प्रोडक्शन और स्टेजिंग संस्करणों के बीच स्विच कर सकते हैं।

उदाहरण के लिए, स्लैक नोड एसडीके मॉड्यूल का उपयोग करने के लिए, आप इसे लिख सकते हैं:

 const functions = require('firebase-functions');
const IncomingWebhook = require('@slack/client').IncomingWebhook;
const webhook = new IncomingWebhook(functions.config().slack.url);
 

तैनात करने से पहले, slack.url पर्यावरण कॉन्फ़िगरेशन चर सेट करें:

 firebase functions:config:set slack.url=https://hooks.slack.com/services/XXX
 

अतिरिक्त पर्यावरण कमांड

  • firebase functions:config:unset key1 key2 से निर्दिष्ट कीज़ को हटा देता है
  • firebase functions:config:clone --from <fromProject> किसी अन्य प्रोजेक्ट के वातावरण को वर्तमान में सक्रिय प्रोजेक्ट में क्लोन करता है।

स्वचालित रूप से पर्यावरण चर

पर्यावरण चर हैं जो स्वचालित रूप से फ़ंक्शन रनटाइम में और स्थानीय रूप से अनुकरण किए गए कार्यों में शामिल हैं:

process.env.GCLOUD_PROJECT : फायरबेस प्रोजेक्ट आईडी प्रदान करता है

process.env.FIREBASE_CONFIG : निम्नलिखित फायरबेस परियोजना विन्यास जानकारी प्रदान करता है:

 {
  databaseURL: 'https://databaseName.firebaseio.com',
  storageBucket: 'projectId.appspot.com',
  projectId: 'projectId'
}
 

जब आप बिना किसी तर्क के फायरबेस एडमिन SDK को इनिशियलाइज़ करते हैं तो यह कॉन्फ़िगरेशन अपने आप लागू हो जाता है। यदि आप जावास्क्रिप्ट में फ़ंक्शन लिख रहे हैं, तो इस तरह से आरंभ करें:

 const admin = require('firebase-admin');
admin.initializeApp();
 

यदि आप टाइपस्क्रिप्ट में फ़ंक्शन लिख रहे हैं, तो इस तरह से प्रारंभ करें:

 import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import 'firebase-functions';
admin.initializeApp();
 

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

 serviceAccount = require('./serviceAccount.json');

const adminConfig = JSON.parse(process.env.FIREBASE_CONFIG);
adminConfig.credential = admin.credential.cert(serviceAccount);
admin.initializeApp(adminConfig);