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

Admin Node.js SDK-এর 10 সংস্করণ দুটি গুরুত্বপূর্ণ পরিবর্তন প্রবর্তন করে:

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

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

Node.js কে v12 বা উচ্চতর তে আপডেট করুন

Admin Node.js SDK v10 রিলিজের সাথে, Firebase Node.js 10 এর জন্য সমর্থন বন্ধ করে দিয়েছে। অ্যাডমিন SDK ব্যবহার করার সময় বিকাশকারীদের অবশ্যই Node.js 12 বা তার বেশি ব্যবহার করতে হবে। আপনি যদি ফায়ারবেসের জন্য ক্লাউড ফাংশনগুলির সাথে অ্যাডমিন Node.js SDK ব্যবহার করেন, তাহলে নিশ্চিত করুন যে আপনি আপনার Node.js সংস্করণটি 12 বা উচ্চতর সংস্করণে আপগ্রেড করেছেন৷

নামস্থানের পরিবর্তে মডিউল ব্যবহার করুন

এর সূচনা থেকে, অ্যাডমিন 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 নামস্থান আমদানি করছেন না। পরিবর্তে, আপনি স্পষ্টভাবে শুধুমাত্র বিভিন্ন মডিউল এন্ট্রি পয়েন্ট থেকে আপনার প্রয়োজনীয় চিহ্নগুলি আমদানি করেন। এছাড়াও, TypeScript ডেভেলপারদের আর admin.auth.UserRecord এবং admin.database.Reference এর মতো ট্রিপল-নেস্টেড টাইপ শনাক্তকারী ব্যবহার করতে হবে না। যেহেতু প্রতিটি প্রকার ঠিক একটি মডিউলের অন্তর্গত, আপনি কেবল তাদের সংক্ষিপ্ত নাম যেমন UserRecord এবং Reference দ্বারা আমদানি করতে পারেন।

এখানে v10 হিসাবে SDK-তে উপলব্ধ সমস্ত মডিউল এন্ট্রি পয়েন্ট রয়েছে:

  • firebase-admin/app
  • firebase-admin/auth
  • firebase-admin/database
  • ফায়ারবেস-অ্যাডমিন/ফায়ারস্টোর
  • firebase-admin/instance-id
  • ফায়ারবেস-অ্যাডমিন/মেশিন-লার্নিং
  • ফায়ারবেস-অ্যাডমিন/মেসেজিং
  • ফায়ারবেস-অ্যাডমিন/প্রকল্প-ব্যবস্থাপনা
  • firebase-admin/remote-config
  • ফায়ারবেস-অ্যাডমিন/নিরাপত্তা-নিয়ম
  • ফায়ারবেস-অ্যাডমিন/স্টোরেজ

নিম্নলিখিত সারণীটি প্রতিটি লিগ্যাসি নেমস্পেস ফাংশনের জন্য প্রতিস্থাপন আমদানি সিনট্যাক্স দেখায়:

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

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

Node.js 12 এবং তার উপরে ES মডিউলগুলির জন্য পরীক্ষামূলক সমর্থনের সাথে আসে, এমনকি নন-টাইপস্ক্রিপ্ট বিকাশকারীদের তাদের কোডে export এবং import কীওয়ার্ড ব্যবহার করতে সক্ষম করে৷ v10 রিলিজ থেকে শুরু করে, Admin 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');