Cloud Functions শুরু করার জন্য, এই টিউটোরিয়ালটি পড়ুন, যা প্রয়োজনীয় সেটআপ কাজগুলি দিয়ে শুরু হয় এবং দুটি সম্পর্কিত ফাংশন তৈরি, পরীক্ষা এবং স্থাপনের মাধ্যমে কাজ করে:
- একটি "বার্তা যোগ করুন" ফাংশন যা এমন একটি URL প্রকাশ করে যা একটি টেক্সট মান গ্রহণ করে এবং এটি Cloud Firestore লিখে।
- একটি "বড় হাতের অক্ষর তৈরি করুন" ফাংশন যা Cloud Firestore লেখায় ট্রিগার করে এবং লেখাটিকে বড় হাতের অক্ষরে রূপান্তরিত করে।
আমরা এই নমুনার জন্য Cloud Firestore এবং HTTP-ট্রিগারযুক্ত জাভাস্ক্রিপ্ট ফাংশনগুলি বেছে নিয়েছি কারণ এই ব্যাকগ্রাউন্ড ট্রিগারগুলি Firebase Local Emulator Suite এর মাধ্যমে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা যেতে পারে। এই টুলসেটটি Realtime Database , PubSub, Auth, এবং HTTP কলযোগ্য ট্রিগারগুলিকেও সমর্থন করে। অন্যান্য ধরণের ব্যাকগ্রাউন্ড ট্রিগার যেমন Remote Config , TestLab, এবং Analytics ট্রিগারগুলি এই পৃষ্ঠায় বর্ণিত নয় এমন টুলসেট ব্যবহার করে ইন্টারেক্টিভভাবে পরীক্ষা করা যেতে পারে।
এই টিউটোরিয়ালের পরবর্তী অংশগুলিতে নমুনা তৈরি, পরীক্ষা এবং স্থাপনের জন্য প্রয়োজনীয় পদক্ষেপগুলি বিস্তারিতভাবে বর্ণনা করা হয়েছে। যদি আপনি কেবল কোডটি চালাতে এবং এটি পরিদর্শন করতে চান, তাহলে সম্পূর্ণ নমুনা কোড পর্যালোচনা করুন এ যান।
একটি ফায়ারবেস প্রকল্প তৈরি করুন
ফায়ারবেস বা ক্লাউডে নতুন
আপনি যদি Firebase বা Google Cloud এ নতুন হন তাহলে এই ধাপগুলি অনুসরণ করুন।
আপনি যদি সম্পূর্ণ নতুন একটি Firebase প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্প) তৈরি করতে চান তবে আপনি এই পদক্ষেপগুলি অনুসরণ করতে পারেন।
- Firebase কনসোলে সাইন ইন করুন।
- একটি নতুন Firebase প্রকল্প তৈরি করতে বোতামটি ক্লিক করুন।
টেক্সট ফিল্ডে, একটি প্রকল্পের নাম লিখুন।
আপনি যদি কোনও Google Cloud সংস্থার অংশ হন, তাহলে আপনি ঐচ্ছিকভাবে কোন ফোল্ডারে আপনার প্রকল্প তৈরি করবেন তা নির্বাচন করতে পারেন।
- যদি অনুরোধ করা হয়, তাহলে Firebase শর্তাবলী পর্যালোচনা করুন এবং গ্রহণ করুন, তারপর Continue এ ক্লিক করুন।
- (ঐচ্ছিক) Firebase কনসোলে (যাকে "Firebase-এ Gemini" বলা হয়) AI সহায়তা সক্ষম করুন, যা আপনাকে শুরু করতে এবং আপনার উন্নয়ন প্রক্রিয়াকে সুগম করতে সাহায্য করতে পারে।
(ঐচ্ছিক) আপনার প্রকল্পের জন্য Google Analytics সেট আপ করুন, যা এই Firebase পণ্যগুলি ব্যবহার করে একটি সর্বোত্তম অভিজ্ঞতা প্রদান করে: Firebase A/B Testing , Cloud Messaging , Crashlytics , In-App Messaging , এবং Remote Config ( ব্যক্তিগতকরণ সহ)।
হয় একটি বিদ্যমান Google Analytics অ্যাকাউন্ট নির্বাচন করুন অথবা একটি নতুন অ্যাকাউন্ট তৈরি করুন। যদি আপনি একটি নতুন অ্যাকাউন্ট তৈরি করেন, তাহলে আপনার Analytics রিপোর্টিং অবস্থান নির্বাচন করুন, তারপর আপনার প্রকল্পের জন্য ডেটা শেয়ারিং সেটিংস এবং Google Analytics শর্তাবলী গ্রহণ করুন।
- প্রকল্প তৈরি করুন ক্লিক করুন।
Firebase আপনার প্রকল্প তৈরি করে, কিছু প্রাথমিক সংস্থান সরবরাহ করে এবং গুরুত্বপূর্ণ API গুলি সক্ষম করে। প্রক্রিয়াটি সম্পূর্ণ হলে, আপনাকে Firebase কনসোলে আপনার Firebase প্রকল্পের ওভারভিউ পৃষ্ঠায় নিয়ে যাওয়া হবে।
বিদ্যমান ক্লাউড প্রকল্প
যদি আপনি একটি বিদ্যমান Google Cloud প্রকল্পের সাথে Firebase ব্যবহার শুরু করতে চান, তাহলে এই পদক্ষেপগুলি অনুসরণ করুন। একটি বিদ্যমান Google Cloud প্রকল্পে "Firebase যোগ করা" সম্পর্কে আরও জানুন এবং সমস্যা সমাধান করুন।
- যে অ্যাকাউন্টটি আপনাকে বিদ্যমান Google Cloud প্রকল্পে অ্যাক্সেস দেয় তা দিয়ে Firebase কনসোলে সাইন ইন করুন।
- একটি নতুন Firebase প্রকল্প তৈরি করতে বোতামটি ক্লিক করুন।
- পৃষ্ঠার নীচে, Google Cloud project-এ Firebase যোগ করুন- এ ক্লিক করুন।
- টেক্সট ফিল্ডে, বিদ্যমান প্রকল্পের প্রকল্পের নাম লিখতে শুরু করুন, এবং তারপর প্রদর্শিত তালিকা থেকে প্রকল্পটি নির্বাচন করুন।
- প্রজেক্ট খুলুন ক্লিক করুন।
- যদি অনুরোধ করা হয়, তাহলে Firebase শর্তাবলী পর্যালোচনা করুন এবং গ্রহণ করুন, তারপর Continue এ ক্লিক করুন।
- (ঐচ্ছিক) Firebase কনসোলে (যাকে "Firebase-এ Gemini" বলা হয়) AI সহায়তা সক্ষম করুন, যা আপনাকে শুরু করতে এবং আপনার উন্নয়ন প্রক্রিয়াকে সুগম করতে সাহায্য করতে পারে।
(ঐচ্ছিক) আপনার প্রকল্পের জন্য Google Analytics সেট আপ করুন, যা এই Firebase পণ্যগুলি ব্যবহার করে একটি সর্বোত্তম অভিজ্ঞতা প্রদান করে: Firebase A/B Testing , Cloud Messaging , Crashlytics , In-App Messaging , এবং Remote Config ( ব্যক্তিগতকরণ সহ)।
হয় একটি বিদ্যমান Google Analytics অ্যাকাউন্ট নির্বাচন করুন অথবা একটি নতুন অ্যাকাউন্ট তৈরি করুন। যদি আপনি একটি নতুন অ্যাকাউন্ট তৈরি করেন, তাহলে আপনার Analytics রিপোর্টিং অবস্থান নির্বাচন করুন, তারপর আপনার প্রকল্পের জন্য ডেটা শেয়ারিং সেটিংস এবং Google Analytics শর্তাবলী গ্রহণ করুন।
- "ফায়ারবেস যোগ করুন" এ ক্লিক করুন।
Firebase আপনার বিদ্যমান প্রকল্পে Firebase যোগ করে । প্রক্রিয়াটি সম্পন্ন হলে, আপনাকে Firebase কনসোলে আপনার Firebase প্রকল্পের ওভারভিউ পৃষ্ঠায় নিয়ে যাওয়া হবে।
Node.js এবং Firebase CLI সেট আপ করুন
ফাংশন লেখার জন্য আপনার একটি Node.js পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন স্থাপনের জন্য আপনার Firebase CLI এর প্রয়োজন হবে। Node.js এবং npm ইনস্টল করার জন্য, Node Version Manager সুপারিশ করা হয়।
একবার Node.js এবং npm ইনস্টল হয়ে গেলে, আপনার পছন্দের পদ্ধতি ব্যবহার করে Firebase CLI ইনস্টল করুন । npm এর মাধ্যমে CLI ইনস্টল করতে, ব্যবহার করুন:
npm install -g firebase-tools
এটি বিশ্বব্যাপী উপলব্ধ firebase কমান্ডটি ইনস্টল করে। যদি কমান্ডটি ব্যর্থ হয়, তাহলে আপনাকে npm permissions পরিবর্তন করতে হতে পারে। firebase-tools এর সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ডটি পুনরায় চালান।
আপনার প্রকল্পটি শুরু করুন
যখন আপনি Cloud Functions জন্য Firebase SDK আরম্ভ করেন, তখন আপনি নির্ভরতা এবং কিছু ন্যূনতম নমুনা কোড সহ একটি খালি প্রকল্প তৈরি করেন এবং ফাংশন রচনার জন্য আপনি TypeScript অথবা JavaScript বেছে নেন। এই টিউটোরিয়ালের উদ্দেশ্যে, আপনাকে Cloud Firestore আরম্ভ করতে হবে।
আপনার প্রকল্পটি শুরু করতে:
ব্রাউজারের মাধ্যমে লগ ইন করতে এবং Firebase CLI প্রমাণীকরণ করতে
firebase loginচালান।আপনার Firebase প্রকল্প ডিরেক্টরিতে যান।
firebase init firestoreচালান। এই টিউটোরিয়ালের জন্য, Firestore নিয়ম এবং সূচী ফাইলের জন্য অনুরোধ করা হলে আপনি ডিফল্ট মানগুলি গ্রহণ করতে পারেন। যদি আপনি এখনও এই প্রকল্পে Cloud Firestore ব্যবহার না করে থাকেন, তাহলে আপনাকে Get started with Cloud Firestore এ বর্ণিত Firestore এর জন্য একটি শুরুর মোড এবং অবস্থান নির্বাচন করতে হবে।firebase init functionsচালান। CLI আপনাকে একটি বিদ্যমান কোডবেস বেছে নিতে অথবা একটি নতুন কোডবেস চালু করতে এবং নাম দিতে অনুরোধ করবে। যখন আপনি সবেমাত্র শুরু করছেন, তখন ডিফল্ট অবস্থানে একটি কোডবেস যথেষ্ট; পরে, আপনার বাস্তবায়ন প্রসারিত হওয়ার সাথে সাথে, আপনি কোডবেসে ফাংশনগুলি সংগঠিত করতে চাইতে পারেন।CLI আপনাকে ভাষা সহায়তার জন্য নিম্নলিখিত বিকল্পগুলি দেয়:
- জাভাস্ক্রিপ্ট
- পাইথন
- আরও তথ্যের জন্য টাইপস্ক্রিপ্ট টাইপস্ক্রিপ্ট দিয়ে ফাংশন লেখা দেখুন।
এই টিউটোরিয়ালের জন্য, জাভাস্ক্রিপ্ট নির্বাচন করুন।
CLI আপনাকে npm ব্যবহার করে নির্ভরতা ইনস্টল করার একটি বিকল্প দেয়। আপনি যদি অন্য কোনও উপায়ে নির্ভরতা পরিচালনা করতে চান তবে এটি প্রত্যাখ্যান করা নিরাপদ, যদিও আপনি যদি প্রত্যাখ্যান করেন তবে আপনার ফাংশনগুলি অনুকরণ বা স্থাপন করার আগে আপনাকে
npm installচালাতে হবে।
এই কমান্ডগুলি সফলভাবে সম্পন্ন হওয়ার পরে, আপনার প্রকল্পের কাঠামোটি এইরকম দেখাবে:
myproject
+- .firebaserc # Hidden file that helps you quickly switch between
| # projects with `firebase use`
|
+- firebase.json # Describes properties for your project
|
+- functions/ # Directory containing all your functions code
|
+- .eslintrc.json # Optional file containing rules for JavaScript linting.
|
+- package.json # npm package file describing your Cloud Functions code
|
+- index.js # main source file for your Cloud Functions code
|
+- node_modules/ # directory where your dependencies (declared in
# package.json) are installed
ইনিশিয়ালাইজেশনের সময় তৈরি করা package.json ফাইলটিতে একটি গুরুত্বপূর্ণ কী রয়েছে: "engines": {"node": "16"} । এটি আপনার Node.js সংস্করণ লেখা এবং স্থাপনের ফাংশনগুলির জন্য নির্দিষ্ট করে। আপনি অন্যান্য সমর্থিত সংস্করণ নির্বাচন করতে পারেন।
প্রয়োজনীয় মডিউলগুলি আমদানি করুন এবং একটি অ্যাপ শুরু করুন
সেটআপের কাজগুলি সম্পন্ন করার পরে, আপনি সোর্স ডিরেক্টরিটি খুলতে পারেন এবং নিম্নলিখিত বিভাগগুলিতে বর্ণিত কোড যোগ করা শুরু করতে পারেন। এই নমুনার জন্য, আপনার প্রকল্পকে Node require স্টেটমেন্ট ব্যবহার করে Cloud Functions এবং Admin SDK মডিউলগুলি আমদানি করতে হবে। আপনার index.js ফাইলে নিম্নলিখিত লাইনগুলি যোগ করুন:
// The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers. const functions = require('firebase-functions/v1'); // The Firebase Admin SDK to access Firestore. const admin = require("firebase-admin"); admin.initializeApp();
এই লাইনগুলি firebase-functions এবং firebase-admin মডিউল লোড করে এবং একটি admin অ্যাপ ইনস্ট্যান্স শুরু করে যেখান থেকে Cloud Firestore পরিবর্তন করা যেতে পারে। যেখানেই অ্যাডমিন SDK সাপোর্ট পাওয়া যায়, যেমন এটি FCM , Authentication এবং Firebase Realtime Database জন্য, এটি Cloud Functions ব্যবহার করে Firebase কে একীভূত করার একটি শক্তিশালী উপায় প্রদান করে।
আপনার প্রোজেক্ট শুরু করার সময় Firebase CLI স্বয়ংক্রিয়ভাবে Firebase এবং Firebase SDK for Cloud Functions Node মডিউল ইনস্টল করে। আপনার প্রোজেক্টে থার্ড পার্টি লাইব্রেরি যোগ করতে, আপনি package.json পরিবর্তন করতে পারেন এবং npm install চালাতে পারেন। আরও তথ্যের জন্য, Handle Dependencies দেখুন।
addMessage() ফাংশনটি যোগ করুন।
addMessage() ফাংশনের জন্য, index.js এ এই লাইনগুলি যোগ করুন:
// Take the text parameter passed to this HTTP endpoint and insert it into // Firestore under the path /messages/:documentId/original exports.addMessage = functions.https.onRequest(async (req, res) => { // Grab the text parameter. const original = req.query.text; // Push the new message into Firestore using the Firebase Admin SDK. const writeResult = await admin .firestore() .collection("messages") .add({ original: original }); // Send back a message that we've successfully written the message res.json({ result: `Message with ID: ${writeResult.id} added.` }); });
addMessage() ফাংশনটি একটি HTTP এন্ডপয়েন্ট। এন্ডপয়েন্টে যেকোনো অনুরোধের ফলে ExpressJS-স্টাইলের অনুরোধ এবং প্রতিক্রিয়া অবজেক্টগুলি onRequest() কলব্যাকে পাস হয়।
HTTP ফাংশনগুলি সিঙ্ক্রোনাস ( callable ফাংশনের অনুরূপ), তাই আপনার যত তাড়াতাড়ি সম্ভব একটি প্রতিক্রিয়া পাঠানো উচিত এবং Cloud Firestore ব্যবহার করে কাজ স্থগিত করা উচিত। addMessage() HTTP ফাংশন HTTP এন্ডপয়েন্টে একটি টেক্সট মান প্রেরণ করে এবং এটি /messages/:documentId/original পাথের অধীনে ডাটাবেসে সন্নিবেশ করায়।
makeUppercase() ফাংশন যোগ করুন।
makeUppercase() ফাংশনের জন্য, index.js এ এই লাইনগুলি যোগ করুন:
// Listens for new messages added to /messages/:documentId/original and creates an // uppercase version of the message to /messages/:documentId/uppercase exports.makeUppercase = functions.firestore .document("/messages/{documentId}") .onCreate((snap, context) => { // Grab the current value of what was written to Firestore. const original = snap.data().original; // Access the parameter `{documentId}` with `context.params` functions.logger.log("Uppercasing", context.params.documentId, original); const uppercase = original.toUpperCase(); // You must return a Promise when performing asynchronous tasks inside a Functions such as // writing to Firestore. // Setting an 'uppercase' field in Firestore document returns a Promise. return snap.ref.set({ uppercase }, { merge: true }); });
Cloud Firestore লেখা হলে makeUppercase() ফাংশনটি কার্যকর হয়। ref.set ফাংশনটি কোন ডকুমেন্টটি শুনতে হবে তা সংজ্ঞায়িত করে। পারফরম্যান্সের কারণে, আপনার যতটা সম্ভব সুনির্দিষ্ট হওয়া উচিত।
ব্রেস—উদাহরণস্বরূপ, {documentId} —"প্যারামিটার", ওয়াইল্ডকার্ডগুলিকে ঘিরে থাকে যা কলব্যাকে তাদের মিলিত ডেটা প্রকাশ করে।
যখনই নতুন বার্তা যোগ করা হয়, তখন Cloud Firestore onCreate() কলব্যাক ট্রিগার করে।
ইভেন্ট-চালিত ফাংশন যেমন Cloud Firestore ইভেন্টগুলি অ্যাসিঙ্ক্রোনাস। কলব্যাক ফাংশনটি হয় একটি null , একটি Object, অথবা একটি Promise রিটার্ন করবে। যদি আপনি কিছু রিটার্ন না করেন, তাহলে ফাংশনটি টাইম আউট হয়ে যায়, একটি ত্রুটির সংকেত দেয় এবং পুনরায় চেষ্টা করা হয়। সিঙ্ক, অ্যাসিঙ্ক এবং প্রমিসেস দেখুন।
আপনার ফাংশনের সম্পাদন অনুকরণ করুন
Firebase Local Emulator Suite আপনাকে ফায়ারবেস প্রকল্পে স্থাপনের পরিবর্তে আপনার স্থানীয় মেশিনে অ্যাপ তৈরি এবং পরীক্ষা করার সুযোগ দেয়। ডেভেলপমেন্টের সময় স্থানীয় পরীক্ষা করার জোরালো পরামর্শ দেওয়া হয়, কারণ এটি কোডিং ত্রুটির ঝুঁকি কমায় যা উৎপাদন পরিবেশে সম্ভাব্য খরচ বহন করতে পারে (উদাহরণস্বরূপ, একটি অসীম লুপ)।
আপনার ফাংশন অনুকরণ করতে:
firebase emulators:startচালান এবং Emulator Suite UI এর URL এর আউটপুট পরীক্ষা করুন। এটি ডিফল্টভাবে localhost:4000 এ সেট করা থাকে, তবে আপনার মেশিনের অন্য কোনও পোর্টে হোস্ট করা হতে পারে। Emulator Suite UI খুলতে আপনার ব্রাউজারে সেই URL টি প্রবেশ করান।HTTP ফাংশন
addMessage()এর URL এর জন্যfirebase emulators:startকমান্ডের আউটপুট পরীক্ষা করুন। এটিhttp://localhost:5001/MY_PROJECT/us-central1/addMessageএর মতো দেখতে হবে, তবে এটি ছাড়া:-
MY_PROJECTআপনার প্রোজেক্ট আইডি দিয়ে প্রতিস্থাপিত হবে। - আপনার স্থানীয় মেশিনে পোর্টটি ভিন্ন হতে পারে।
-
ফাংশনের URL-এর শেষে
?text=uppercasemeকোয়েরি স্ট্রিং যোগ করুন। এটি দেখতে এরকম হওয়া উচিত:http://localhost:5001/MY_PROJECT/us-central1/addMessage?text=uppercaseme। ঐচ্ছিকভাবে, আপনি "uppercaseme" বার্তাটিকে একটি কাস্টম বার্তায় পরিবর্তন করতে পারেন।আপনার ব্রাউজারে একটি নতুন ট্যাবে URLটি খুলে একটি নতুন বার্তা তৈরি করুন।
Emulator Suite UI তে ফাংশনগুলির প্রভাব দেখুন:
লগস ট্যাবে, আপনি নতুন লগ দেখতে পাবেন যা নির্দেশ করে যে
addMessage()এবংmakeUppercase()ফাংশনগুলি চলছে:i functions: Beginning execution of "addMessage"i functions: Beginning execution of "makeUppercase"ফায়ারস্টোর ট্যাবে, আপনার মূল বার্তার পাশাপাশি আপনার বার্তার বড় হাতের সংস্করণ সম্বলিত একটি নথি দেখতে পাবেন (যদি এটি মূলত "বড় হাতের অক্ষর" হয়, তাহলে আপনি "বড় হাতের অক্ষর" দেখতে পাবেন)।
একটি উৎপাদন পরিবেশে ফাংশন স্থাপন করুন
একবার আপনার ফাংশনগুলি এমুলেটরে পছন্দসইভাবে কাজ করতে শুরু করলে, আপনি প্রোডাকশন পরিবেশে সেগুলি স্থাপন, পরীক্ষা এবং চালানোর জন্য এগিয়ে যেতে পারেন। মনে রাখবেন যে Node.js 14 রানটাইম পরিবেশে স্থাপন করতে, আপনার প্রকল্পটি অবশ্যই Blaze মূল্য পরিকল্পনায় থাকতে হবে। Cloud Functions মূল্য নির্ধারণ দেখুন।
টিউটোরিয়ালটি সম্পূর্ণ করতে, আপনার ফাংশনগুলি স্থাপন করুন এবং তারপর makeUppercase() ট্রিগার করতে addMessage() কার্যকর করুন।
আপনার ফাংশন স্থাপন করতে এই কমান্ডটি চালান:
firebase deploy --only functions
এই কমান্ডটি চালানোর পরে, Firebase CLI যেকোনো HTTP ফাংশন এন্ডপয়েন্টের জন্য URL আউটপুট করে। আপনার টার্মিনালে, আপনি নিম্নলিখিত লাইনটি দেখতে পাবেন:
Function URL (addMessage): https://us-central1-MY_PROJECT.cloudfunctions.net/addMessageURL-এ আপনার প্রোজেক্ট আইডি এবং HTTP ফাংশনের জন্য একটি অঞ্চল রয়েছে। যদিও এখন আপনাকে এটি নিয়ে চিন্তা করতে হবে না, কিছু প্রোডাকশন HTTP ফাংশন নেটওয়ার্ক ল্যাটেন্সি কমানোর জন্য একটি অবস্থান নির্দিষ্ট করে দেওয়া উচিত।
যদি আপনি "প্রকল্পে অ্যাক্সেস অনুমোদন করতে অক্ষম" এর মতো অ্যাক্সেস ত্রুটির সম্মুখীন হন, তাহলে আপনার প্রকল্পের উপনাম পরীক্ষা করে দেখুন।
CLI এর
addMessage()URL আউটপুট ব্যবহার করে, একটি টেক্সট কোয়েরি প্যারামিটার যোগ করুন এবং এটি একটি ব্রাউজারে খুলুন:https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage?text=uppercasemetooএই ফাংশনটি ব্রাউজারটিকে Firebase কনসোলে ডাটাবেস লোকেশনে এক্সিকিউট করে এবং রিডাইরেক্ট করে যেখানে টেক্সট স্ট্রিং সংরক্ষণ করা হয়। এই write ইভেন্টটি
makeUppercase()ট্রিগার করে, যা স্ট্রিংয়ের একটি বড় হাতের সংস্করণ লেখে।
ফাংশন স্থাপন এবং কার্যকর করার পরে, আপনি Google Cloud কনসোলে লগ দেখতে পারেন। যদি আপনার ডেভেলপমেন্ট বা প্রোডাকশনে ফাংশন মুছে ফেলার প্রয়োজন হয়, তাহলে Firebase CLI ব্যবহার করুন।
উৎপাদনে, আপনি সর্বনিম্ন এবং সর্বোচ্চ সংখ্যক ইনস্ট্যান্স চালানোর সংখ্যা নির্ধারণ করে ফাংশন কর্মক্ষমতা এবং নিয়ন্ত্রণ খরচ অপ্টিমাইজ করতে চাইতে পারেন। এই রানটাইম বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য নিয়ন্ত্রণ স্কেলিং আচরণ দেখুন।
সম্পূর্ণ নমুনা কোড পর্যালোচনা করুন
এখানে addMessage() এবং makeUppercase() ফাংশনগুলি সম্বলিত সম্পূর্ণ functions/index.js রয়েছে। এই ফাংশনগুলি আপনাকে একটি HTTP এন্ডপয়েন্টে একটি প্যারামিটার পাস করতে দেয় যা Cloud Firestore এ একটি মান লিখে, এবং তারপর স্ট্রিং-এর সমস্ত অক্ষরকে বড় করে রূপান্তর করে।
// The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers. const functions = require('firebase-functions/v1'); // The Firebase Admin SDK to access Firestore. const admin = require("firebase-admin"); admin.initializeApp(); // Take the text parameter passed to this HTTP endpoint and insert it into // Firestore under the path /messages/:documentId/original exports.addMessage = functions.https.onRequest(async (req, res) => { // Grab the text parameter. const original = req.query.text; // Push the new message into Firestore using the Firebase Admin SDK. const writeResult = await admin .firestore() .collection("messages") .add({ original: original }); // Send back a message that we've successfully written the message res.json({ result: `Message with ID: ${writeResult.id} added.` }); }); // Listens for new messages added to /messages/:documentId/original and creates an // uppercase version of the message to /messages/:documentId/uppercase exports.makeUppercase = functions.firestore .document("/messages/{documentId}") .onCreate((snap, context) => { // Grab the current value of what was written to Firestore. const original = snap.data().original; // Access the parameter `{documentId}` with `context.params` functions.logger.log("Uppercasing", context.params.documentId, original); const uppercase = original.toUpperCase(); // You must return a Promise when performing asynchronous tasks inside a Functions such as // writing to Firestore. // Setting an 'uppercase' field in Firestore document returns a Promise. return snap.ref.set({ uppercase }, { merge: true }); });
পরবর্তী পদক্ষেপ
এই ডকুমেন্টেশনে, আপনি Cloud Functions জন্য ফাংশনগুলি কীভাবে পরিচালনা করবেন এবং Cloud Functions দ্বারা সমর্থিত সমস্ত ইভেন্টের ধরণগুলি কীভাবে পরিচালনা করবেন সে সম্পর্কে আরও জানতে পারবেন।
Cloud Functions সম্পর্কে আরও জানতে, আপনি নিম্নলিখিতগুলিও করতে পারেন:
- Cloud Functions ব্যবহারের ধরণ সম্পর্কে পড়ুন।
- Cloud Functions কোডল্যাব ব্যবহার করে দেখুন।
- GitHub-এ কোড নমুনা পর্যালোচনা করুন এবং চালান