Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Node.js SDK व्यवस्थापक SDK v10 (मॉड्यूलर SDK) में अपग्रेड करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

Admin Node.js SDK का संस्करण 10 दो महत्वपूर्ण परिवर्तन प्रस्तुत करता है:

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

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

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

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

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

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

// 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 से शुरू होकर, Admin Node.js SDK नामित निर्यात के साथ कई मॉड्यूल प्रविष्टि बिंदु प्रदान करता है। हम अनुशंसा करते हैं कि वैश्विक admin नाम स्थान का उपयोग करने के बजाय, हम डेवलपर्स को SDK के विभिन्न API तक पहुंचने के लिए इन नए प्रवेश बिंदुओं का उपयोग करें।

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

टाइपप्रति

// 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');

Node.js

// 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 के रूप में उपलब्ध सभी मॉड्यूल प्रविष्टि बिंदु यहां दिए गए हैं:

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

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

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 रिलीज से शुरू होकर, एडमिन नोड.जेएस एसडीके ईएस मॉड्यूल समर्थन भी प्रदान करता है, ताकि ईएस मॉड्यूल को सादे नोड.जेएस पर लागू करने वाले डेवलपर्स import सिंटैक्स का उपयोग करके एसडीके आयात कर सकें।

व्यवस्थापक 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');