Node.js SDK অ্যাডমিন SDK v10 (মডুলার SDK) এ আপগ্রেড করুন

অ্যাডমিন নোড.জেএস এসডিকে-এর ১০ম সংস্করণে দুটি গুরুত্বপূর্ণ পরিবর্তন আনা হয়েছে:

  • Node.js 10 এর জন্য সাপোর্ট বন্ধ করা হয়েছে (এটি একটি অবিশ্বাস্য পরিবর্তন )
  • SDK একটি মডুলার API প্যাটার্ন গ্রহণ করেছে

এই নির্দেশিকাটি ডেভেলপারদের বিদ্যমান Node.js অ্যাপগুলিকে Admin SDK এর পূর্ববর্তী সংস্করণ থেকে v10-এ আপগ্রেড করতে সাহায্য করার জন্য নির্দেশাবলী এবং তথ্য প্রদান করে।

Node.js কে v12 বা তার পরবর্তী সংস্করণে আপডেট করুন

Admin Node.js SDK v10 রিলিজের সাথে সাথে, Firebase Node.js 10 এর জন্য সমর্থন বন্ধ করে দিয়েছে। Admin SDK ব্যবহার করার সময় ডেভেলপারদের Node.js 12 বা তার বেশি সংস্করণ ব্যবহার করতে হবে। আপনি যদি Cloud Functions for Firebase এর সাথে Admin 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 থেকে শুরু করে, অ্যাডমিন নোড.জেএস এসডিকে নামযুক্ত এক্সপোর্ট সহ একাধিক মডিউল এন্ট্রি পয়েন্ট অফার করে। আমরা ডেভেলপারদের গ্লোবাল 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');

নোড.জেএস

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

অ্যাপে পদ্ধতির পরিবর্তে এক্সপোর্ট করা ফাংশন ব্যবহার করুন

লিগ্যাসি API-তে, 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);

ES মডিউল সমর্থন

Node.js ১২ এবং তার উপরের সংস্করণগুলিতে ES মডিউলগুলির জন্য পরীক্ষামূলক সমর্থন রয়েছে, যার ফলে টাইপস্ক্রিপ্ট-বহির্ভূত ডেভেলপাররাও তাদের কোডে export এবং import কীওয়ার্ড ব্যবহার করতে পারবেন। v10 রিলিজ থেকে শুরু করে, অ্যাডমিন নোড.জেএস SDK ES মডিউল সমর্থনও প্রদান করে, যাতে প্লেইন Node.js-এ ES মডিউল বাস্তবায়নকারী ডেভেলপাররা import সিনট্যাক্স ব্যবহার করে SDK আমদানি করতে পারেন।

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