Node.js SDK एडमिन SDK v10 (मॉड्यूलर SDK) में अपग्रेड करें

एडमिन नोड.जेएस एसडीके का संस्करण 10 दो महत्वपूर्ण परिवर्तन पेश करता है:

  • Node.js 10 के लिए समर्थन बंद कर दिया गया है (यह एक महत्वपूर्ण परिवर्तन है)
  • एसडीके ने एक मॉड्यूलर एपीआई पैटर्न अपनाया है

यह मार्गदर्शिका डेवलपर्स को मौजूदा Node.js ऐप्स को एडमिन SDK के पुराने संस्करणों से v10 में अपग्रेड करने में मदद करने के लिए निर्देश और जानकारी प्रदान करती है।

Node.js को v12 या उच्चतर पर अपडेट करें

एडमिन नोड.जेएस एसडीके वी10 रिलीज के साथ, फायरबेस ने नोड.जेएस 10 के लिए समर्थन बंद कर दिया है। एडमिन एसडीके का उपयोग करते समय डेवलपर्स को नोड.जेएस 12 या उच्चतर का उपयोग करना होगा। यदि आप फायरबेस के लिए क्लाउड फ़ंक्शंस के साथ एडमिन Node.js SDK का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने अपना Node.js संस्करण 12 या उच्चतर में अपग्रेड कर लिया है

नेमस्पेस के बजाय मॉड्यूल का उपयोग करें

अपनी स्थापना के बाद से, एडमिन नोड.जेएस एसडीके ने नेस्टेड नेमस्पेस पदानुक्रम के रूप में संरचित एक स्थिर एपीआई की पेशकश की है। परिणामस्वरूप, आप इस तरह दिखने वाले कोड लिखने से परिचित हो गए होंगे:

// Import the global admin namespace
import * as admin from 'firebase-admin';

const app: admin.app.App = admin.initializeApp();

const token: string = await admin.auth().createCustomToken('alice');

const user: admin.auth.UserRecord = await admin.auth().getUser('bob');

V10 से शुरू होकर, एडमिन Node.js SDK नामित निर्यात के साथ कई मॉड्यूल प्रवेश बिंदु प्रदान करता है। हम डेवलपर्स को वैश्विक admin नामस्थान का उपयोग करने के विपरीत, एसडीके के विभिन्न एपीआई तक पहुंचने के लिए इन नए प्रवेश बिंदुओं का उपयोग करने की सलाह देते हैं।

नए मॉड्यूल प्रवेश बिंदुओं के साथ उपरोक्त उदाहरण इस प्रकार दिखेगा:

टाइपप्रति

// Import only what you need
import { initializeApp, App } from 'firebase-admin/app';
import { getAuth, UserRecord } from 'firebase-admin/auth';

const app: App = initializeApp();

const token: string = await getAuth().createCustomToken('alice');

const user: UserRecord = getAuth().getUser('bob');

नोड.जे.एस

// Import only what you need
const { initializeApp } = require('firebase-admin/app');
const { getAuth } = require('firebase-admin/auth');

const app = initializeApp();

const token = await getAuth().createCustomToken('alice');

const user = getAuth().getUser('bob');

V10 मॉड्यूलर प्रवेश बिंदुओं का उपयोग करना

ध्यान दें कि, उपरोक्त उदाहरणों में, आप अब वैश्विक admin नामस्थान आयात नहीं कर रहे हैं। इसके बजाय, आप स्पष्ट रूप से केवल उन प्रतीकों को आयात करते हैं जिनकी आपको कई मॉड्यूल प्रविष्टि बिंदुओं से आवश्यकता होती है। साथ ही, टाइपस्क्रिप्ट डेवलपर्स को अब admin.auth.UserRecord और admin.database.Reference जैसे ट्रिपल-नेस्टेड प्रकार पहचानकर्ताओं का उपयोग करने की आवश्यकता नहीं है। चूँकि प्रत्येक प्रकार बिल्कुल एक मॉड्यूल से संबंधित है, आप उन्हें केवल UserRecord और Reference जैसे उनके संक्षिप्त नामों से आयात कर सकते हैं।

यहां v10 के अनुसार SDK में उपलब्ध सभी मॉड्यूल प्रविष्टि बिंदु दिए गए हैं:

  • फायरबेस-एडमिन/ऐप
  • फायरबेस-एडमिन/ऑथ
  • फायरबेस-एडमिन/डेटाबेस
  • फायरबेस-एडमिन/फायरस्टोर
  • फायरबेस-एडमिन/इंस्टेंस-आईडी
  • फायरबेस-एडमिन/मशीन-लर्निंग
  • फायरबेस-एडमिन/मैसेजिंग
  • फायरबेस-एडमिन/प्रोजेक्ट-प्रबंधन
  • फायरबेस-एडमिन/रिमोट-कॉन्फ़िगरेशन
  • फायरबेस-एडमिन/सुरक्षा-नियम
  • फायरबेस-एडमिन/स्टोरेज

निम्न तालिका प्रत्येक लीगेसी नेमस्पेस फ़ंक्शन के लिए प्रतिस्थापन आयात सिंटैक्स दिखाती है:

v9 v10
admin.initializeApp() import { initializeApp } from 'firebase-admin/app'

initializeApp();

admin.app() import { getApp } from 'firebase-admin/ap'

getApp();

admin.credential.cert() import { cert } from 'firebase-admin/app'

cert();

admin.auth() import { getAuth } from 'firebase-admin/auth'

getAuth();

admin.database() import { getDatabase } from 'firebase-admin/database'

getDatabase();

admin.firestore() import { getFirestore } from 'firebase-admin/firestore'

getFirestore();

admin.instanceId() import { getInstanceId } from 'firebase-admin/instance-id'

getInstanceId();

admin.machineLearning() import { getMachineLearning } from 'firebase-admin/machine-learning'

getMachineLearning();

admin.messaging() import { getMessaging } from 'firebase-admin/messaging'

getMessaging()

admin.projectManagement() import { getProjectManagement } from 'firebase-admin/project-management'

getProjectManagement();

admin.remoteConfig() import { getRemoteConfig } from 'firebase-admin/remote-config'

getRemoteConfig();

admin.securityRules() import { getSecurityRules } from 'firebase-admin/security-rules'

getSecurityRules()

admin.storage() import { getStorage } from 'firebase-admin/storage'

getStorage();

ऐप पर विधियों के बजाय निर्यात किए गए फ़ंक्शन का उपयोग करें

लीगेसी एपीआई में, App ऑब्जेक्ट ने app.auth() और app.database() जैसी कई विधियों को उजागर किया। हम डेवलपर्स को इन तरीकों का उपयोग करने से बचने की सलाह देते हैं, और इसके बजाय किसी दिए गए App ऑब्जेक्ट के दायरे में सेवा उदाहरण प्राप्त करने और अन्य ऐप-विशिष्ट कार्य करने के लिए ऊपर वर्णित समान मॉड्यूल प्रविष्टि बिंदुओं का उपयोग करते हैं।

v9 v10
app.auth() import { getAuth } from 'firebase-admin/auth';

getAuth(app);

app.database() import { getDatabase } from 'firebase-admin/database';

getDatabase(app);

app.database(url) import { getDatabaseWithUrl } from 'firebase-admin/database';

getDatabaseWithUrl(url, app);

app.firestore() import { getFirestore } from 'firebase-admin/firestore'

getFirestore(app);

app.instanceId() import { getInstanceId } from 'firebase-admin/instance-id'

getInstanceId(app);

app.machineLearning() import { getMachineLearning } from 'firebase-admin/machine-learning'

getMachineLearning(app);

app.messaging() import { getMessaging } from 'firebase-admin/messaging'

getMessaging(app);

app.projectManagement() import { getProjectManagement } from 'firebase-admin/project-management'

getProjectManagement(app);

app.remoteConfig() import { getRemoteConfig } from 'firebase-admin/remote-config'

getRemoteConfig(app);

app.securityRules() import { getSecurityRules } from 'firebase-admin/security-rules'

getSecurityRules(app);

app.storage() import { getStorage } from 'firebase-admin/storage'

getStorage(app);

app.delete() import { deleteApp } from 'firebase-admin/app';

deleteApp(app);

ईएस मॉड्यूल समर्थन करते हैं

Node.js 12 और इसके बाद के संस्करण ES मॉड्यूल के लिए प्रयोगात्मक समर्थन के साथ आते हैं, जो गैर-टाइपस्क्रिप्ट डेवलपर्स को भी अपने कोड में export और import कीवर्ड का उपयोग करने में सक्षम बनाता है। V10 रिलीज़ से शुरू होकर, एडमिन Node.js SDK ES मॉड्यूल समर्थन भी प्रदान करता है, ताकि सादे Node.js पर ES मॉड्यूल लागू करने वाले डेवलपर्स import सिंटैक्स का उपयोग करके SDK आयात कर सकें।

एडमिन SDK के साथ ES मॉड्यूल का उपयोग करने के लिए, पहले सुनिश्चित करें कि आपने अपने Node.js रनटाइम के लिए ESM समर्थन सक्षम किया है। यह आमतौर पर आपकी package.json फ़ाइल में "type": "module" फ़ील्ड जोड़कर किया जाता है। फिर आप एप्लिकेशन कोड लिख सकते हैं जो इस तरह दिखता है:

// With {type: module} in the package.json...

// Import only what you need
import { initializeApp }  from 'firebase-admin/app';
import { getAuth } from 'firebase-admin/auth';

const app = initializeApp();

const token = await getAuth().createCustomToken('alice');

const user = getAuth().getUser('bob');