Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

निर्भरता को संभालना

एक फ़ंक्शन को बाहरी Node.js मॉड्यूल के साथ-साथ स्थानीय डेटा का उपयोग करने की अनुमति है। Node.js में निर्भरता के साथ प्रबंधित कर रहे हैं NPM और एक मेटाडाटा बुलाया फ़ाइल में व्यक्त package.json । क्लाउड फ़ंक्शंस Node.js रनटाइम आमतौर पर npm या यार्न का उपयोग करके इंस्टॉल करने का समर्थन करते हैं।

अपने फ़ंक्शन के लिए एक निर्भरता निर्दिष्ट करने के लिए, इसे अपनी package.json फ़ाइल में जोड़ें।

इस उदाहरण में, package.json फ़ाइल में एक निर्भरता सूचीबद्ध है:

{
  "dependencies": {
    "escape-html": "^1.0.3"
  }
}

निर्भरता तब फ़ंक्शन में आयात की जाती है:

जावास्क्रिप्ट

const escapeHtml = require('escape-html');

// Return a greeting with the input HTML-escaped.
exports.hello = functions.https.onRequest((req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
});

टाइपप्रति

import * as escapeHtml from 'escape-html';

// Return a greeting with the input HTML-escaped.
export let hello = functions.https.onRequest((req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
}

स्थानीय Node.js मॉड्यूल सहित

आप अपने फ़ंक्शन के हिस्से के रूप में स्थानीय Node.js मॉड्यूल भी शामिल कर सकते हैं। आप अपने मॉड्यूल को package.json में file: उपसर्ग का उपयोग करके घोषित करके इसे प्राप्त कर सकते हैं। निम्नलिखित उदाहरण में, mymodule आपके मॉड्यूल नाम को संदर्भित करता है और mymoduledir वह निर्देशिका है जिसमें आपका मॉड्यूल है:

{
  "dependencies": {
    "mymodule": "file:mymoduledir"
  }
}

इस स्थानीय मॉड्यूल के लिए कोड आपके फ़ंक्शन की रूट निर्देशिका में node_modules फ़ोल्डर के अलावा कहीं और संग्रहीत किया जाना चाहिए।

टाइपस्क्रिप्ट के लिए अतिरिक्त चरण

टाइपस्क्रिप्ट आपकी सबसे अधिक मदद करता है जब आप उन पुस्तकालयों का उपयोग करते हैं जिनमें प्रकार की जानकारी होती है। यह टाइपस्क्रिप्ट को सिंटैक्स त्रुटियों को पकड़ने देता है और संपादकों को आपको बेहतर स्वत: पूर्ण सुझाव देने देता है। कुछ पुस्तकालय, जैसे firebase-admin और firebase-functions , टाइपस्क्रिप्ट परिभाषाओं के साथ जहाज शामिल हैं।

कई पुस्तकालय अपनी टाइपस्क्रिप्ट परिभाषा प्रदान नहीं करते हैं। निश्चित रूप से टाइप की गई परियोजना सबसे लोकप्रिय नोड पुस्तकालयों के लिए समुदाय-अनुरक्षित परिभाषा प्रदान करती है। निश्चित रूप से टाइप इन परिभाषाओं को उसी एनपीएम पैकेज नाम के तहत प्रकाशित करता है, लेकिन "@types" संगठन के अंदर। उदाहरण के लिए, आप निम्न के साथ uuid लाइब्रेरी के लिए प्रकार की जानकारी स्थापित कर सकते हैं:

npm install @types/uuid

जैसे-जैसे आप टाइपस्क्रिप्ट से अधिक परिचित होते जाते हैं, आप स्वयं को दोनों इंस्टालेशन को मिलाते हुए पा सकते हैं:

npm install uuid @types/uuid

टाइप डिपेंडेंसी लाइब्रेरी डिपेंडेंसी की तरह ही होनी चाहिए। उदाहरण के लिए, आपको uuid को सामान्य निर्भरता के रूप में और @types/uuid को देव निर्भरता या सहकर्मी निर्भरता के रूप में नहीं सहेजना चाहिए।

Node.js मॉड्यूल लोड हो रहा है

आपके द्वारा इंस्टॉल किए गए किसी भी Node.js मॉड्यूल को लोड करने के लिए Node.js require() फ़ंक्शन का उपयोग करें। आप अपने फ़ंक्शन के साथ परिनियोजित स्थानीय फ़ाइलों को आयात करने के लिए require() फ़ंक्शन का भी उपयोग कर सकते हैं।

यदि आप टाइपस्क्रिप्ट में फ़ंक्शन लिख रहे हैं, तो import विवरण का उपयोग उसी तरह करें जैसे आपने किसी Node.js मॉड्यूल को लोड करने के लिए किया है।

निजी मॉड्यूल का उपयोग करना

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

यदि आप निजी रिपॉजिटरी का उपयोग नहीं कर रहे हैं तो .npmrc फ़ाइल शामिल न करें, क्योंकि यह आपके कार्यों के लिए परिनियोजन समय बढ़ा सकता है।

फाइल का प्रारूप

यदि आप कस्टम प्रमाणीकरण टोकन सेट करने के लिए .npmrc फ़ाइल का उपयोग कर रहे हैं, तो इसमें नीचे दिखाई गई पंक्ति शामिल होनी चाहिए। <YOUR_AUTH_TOKEN> को अपने NPM द्वारा प्रदत्त प्रमाणीकरण टोकन से बदलें।

//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>