শুরু করুন: লিখুন, পরীক্ষা করুন এবং আপনার প্রথম ফাংশন স্থাপন করুন


Cloud Functions সাথে শুরু করতে, এই টিউটোরিয়ালটির মাধ্যমে কাজ করার চেষ্টা করুন, যা প্রয়োজনীয় সেটআপ টাস্ক দিয়ে শুরু হয় এবং দুটি সম্পর্কিত ফাংশন তৈরি, পরীক্ষা এবং স্থাপনের মাধ্যমে কাজ করে:

  • একটি "বার্তা যোগ করুন" ফাংশন যা একটি URL প্রকাশ করে যা একটি পাঠ্য মান গ্রহণ করে এবং এটি Cloud Firestore লেখে।
  • একটি "মেক বড় হাতের" ফাংশন যা একটি Cloud Firestore লিখতে ট্রিগার করে এবং পাঠ্যটিকে বড় হাতের অক্ষরে রূপান্তরিত করে।

এখানে ফাংশন ধারণকারী সম্পূর্ণ নমুনা কোড আছে:

Node.js

// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.
const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/v2/https");
const {onDocumentCreated} = require("firebase-functions/v2/firestore");

// The Firebase Admin SDK to access Firestore.
const {initializeApp} = require("firebase-admin/app");
const {getFirestore} = require("firebase-admin/firestore");

initializeApp();

// Take the text parameter passed to this HTTP endpoint and insert it into
// Firestore under the path /messages/:documentId/original
exports.addmessage = 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 getFirestore()
      .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 saves an uppercased version of the message
// to /messages/:documentId/uppercase
exports.makeuppercase = onDocumentCreated("/messages/{documentId}", (event) => {
  // Grab the current value of what was written to Firestore.
  const original = event.data.data().original;

  // Access the parameter `{documentId}` with `event.params`
  logger.log("Uppercasing", event.params.documentId, original);

  const uppercase = original.toUpperCase();

  // You must return a Promise when performing
  // asynchronous tasks inside a function
  // such as writing to Firestore.
  // Setting an 'uppercase' field in Firestore document returns a Promise.
  return event.data.ref.set({uppercase}, {merge: true});
});

পাইথন

# The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers.
from firebase_functions import firestore_fn, https_fn

# The Firebase Admin SDK to access Cloud Firestore.
from firebase_admin import initialize_app, firestore
import google.cloud.firestore

app = initialize_app()


@https_fn.on_request()
def addmessage(req: https_fn.Request) -> https_fn.Response:
    """Take the text parameter passed to this HTTP endpoint and insert it into
    a new document in the messages collection."""
    # Grab the text parameter.
    original = req.args.get("text")
    if original is None:
        return https_fn.Response("No text parameter provided", status=400)

    firestore_client: google.cloud.firestore.Client = firestore.client()

    # Push the new message into Cloud Firestore using the Firebase Admin SDK.
    _, doc_ref = firestore_client.collection("messages").add({"original": original})

    # Send back a message that we've successfully written the message
    return https_fn.Response(f"Message with ID {doc_ref.id} added.")


@firestore_fn.on_document_created(document="messages/{pushId}")
def makeuppercase(event: firestore_fn.Event[firestore_fn.DocumentSnapshot | None]) -> None:
    """Listens for new documents to be added to /messages. If the document has
    an "original" field, creates an "uppercase" field containg the contents of
    "original" in upper case."""

    # Get the value of "original" if it exists.
    if event.data is None:
        return
    try:
        original = event.data.get("original")
    except KeyError:
        # No "original" field, so do nothing.
        return

    # Set the "uppercase" field.
    print(f"Uppercasing {event.params['pushId']}: {original}")
    upper = original.upper()
    event.data.reference.update({"uppercase": upper})

এই টিউটোরিয়াল সম্পর্কে

আমরা আংশিকভাবে এই নমুনার জন্য Cloud Firestore এবং HTTP-ট্রিগার করা ফাংশন বেছে নিয়েছি কারণ এই পটভূমি ট্রিগারগুলি Firebase Local Emulator Suite মাধ্যমে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা যেতে পারে। এই টুলসেটটি Realtime Database , Cloud Storage , PubSub, Auth এবং HTTP কলযোগ্য ট্রিগারগুলিকেও সমর্থন করে৷ অন্যান্য ধরনের ব্যাকগ্রাউন্ড ট্রিগার যেমন Remote Config এবং টেস্টল্যাব ট্রিগার এই পৃষ্ঠায় বর্ণিত নেই এমন টুলসেট ব্যবহার করে ইন্টারেক্টিভভাবে পরীক্ষা করা যেতে পারে।

এই টিউটোরিয়ালের নিম্নলিখিত বিভাগগুলি নমুনা তৈরি, পরীক্ষা এবং স্থাপনের জন্য প্রয়োজনীয় পদক্ষেপগুলির বিশদ বিবরণ দেয়।

একটি ফায়ারবেস প্রকল্প তৈরি করুন

  1. Firebase কনসোলে , প্রজেক্ট যোগ করুন ক্লিক করুন।

    • একটি বিদ্যমান Google Cloud প্রকল্পে Firebase সংস্থান যোগ করতে, এর প্রকল্পের নাম লিখুন বা ড্রপডাউন মেনু থেকে এটি নির্বাচন করুন৷

    • একটি নতুন প্রকল্প তৈরি করতে, পছন্দসই প্রকল্পের নাম লিখুন। এছাড়াও আপনি ঐচ্ছিকভাবে প্রকল্পের নামের নীচে প্রদর্শিত প্রকল্প ID সম্পাদনা করতে পারেন৷

  2. অনুরোধ করা হলে, Firebase শর্তাবলী পর্যালোচনা করুন এবং স্বীকার করুন।

  3. অবিরত ক্লিক করুন.

  4. (ঐচ্ছিক) আপনার প্রোজেক্টের জন্য Google Analytics সেট আপ করুন, যা আপনাকে নিম্নলিখিত Firebase পণ্যগুলির যেকোনো একটি ব্যবহার করে সর্বোত্তম অভিজ্ঞতা পেতে সক্ষম করে:

    হয় একটি বিদ্যমান Google Analytics অ্যাকাউন্ট নির্বাচন করুন বা একটি নতুন অ্যাকাউন্ট তৈরি করুন৷

    আপনি যদি একটি নতুন অ্যাকাউন্ট তৈরি করেন, আপনার Analytics রিপোর্টিং অবস্থান নির্বাচন করুন, তারপর আপনার প্রকল্পের জন্য ডেটা শেয়ারিং সেটিংস এবং Google Analytics শর্তাদি গ্রহণ করুন৷

  5. প্রোজেক্ট তৈরি করুন ক্লিক করুন (বা ফায়ারবেস যোগ করুন , যদি আপনি একটি বিদ্যমান Google Cloud প্রকল্প ব্যবহার করেন)।

Firebase স্বয়ংক্রিয়ভাবে আপনার Firebase প্রকল্পের জন্য সংস্থান সরবরাহ করে। প্রক্রিয়াটি সম্পূর্ণ হলে, আপনাকে Firebase কনসোলে আপনার Firebase প্রকল্পের ওভারভিউ পৃষ্ঠায় নিয়ে যাওয়া হবে।

আপনার পরিবেশ এবং Firebase CLI সেট আপ করুন

Node.js

ফাংশন লিখতে আপনার একটি Node.js পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন স্থাপন করতে আপনার Firebase CLI প্রয়োজন হবে। Node.js এবং npm ইনস্টল করার জন্য, নোড সংস্করণ ম্যানেজার সুপারিশ করা হয়।

আপনার Node.js এবং npm ইনস্টল হয়ে গেলে, আপনার পছন্দের পদ্ধতির মাধ্যমে Firebase CLI ইনস্টল করুন । npm এর মাধ্যমে CLI ইনস্টল করতে, ব্যবহার করুন:

npm install -g firebase-tools

এটি বিশ্বব্যাপী উপলব্ধ ফায়ারবেস কমান্ড ইনস্টল করে। কমান্ড ব্যর্থ হলে, আপনাকে npm অনুমতি পরিবর্তন করতে হতে পারে। firebase-tools এর সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ড পুনরায় চালু করুন।

পাইথন

ফাংশনগুলি লিখতে আপনার একটি পাইথন পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন স্থাপন করতে আপনার Firebase CLI প্রয়োজন হবে৷ আমরা নির্ভরতা বিচ্ছিন্ন করতে venv ব্যবহার করার পরামর্শ দিই। পাইথন সংস্করণ 3.10 এবং 3.11 সমর্থিত।

একবার আপনি পাইথন ইনস্টল হয়ে গেলে, আপনার পছন্দের পদ্ধতির মাধ্যমে Firebase CLI ইনস্টল করুন

আপনার প্রকল্প শুরু করুন

আপনি যখন Cloud Functions জন্য Firebase SDK আরম্ভ করেন, তখন আপনি নির্ভরতা এবং কিছু ন্যূনতম নমুনা কোড সহ একটি খালি প্রকল্প তৈরি করেন। আপনি যদি Node.js ব্যবহার করেন, আপনি ফাংশন রচনার জন্য TypeScript বা JavaScript বেছে নিতে পারেন। এই টিউটোরিয়ালের উদ্দেশ্যে, আপনাকে Cloud Firestore শুরু করতে হবে।

আপনার প্রকল্প শুরু করতে:

  1. ব্রাউজারের মাধ্যমে লগ ইন করতে firebase login চালান এবং Firebase CLI প্রমাণীকরণ করুন।
  2. আপনার ফায়ারবেস প্রকল্প ডিরেক্টরিতে যান।
  3. firebase init firestore চালান। এই টিউটোরিয়ালের জন্য, Firestore নিয়ম এবং সূচী ফাইলের জন্য অনুরোধ করা হলে আপনি ডিফল্ট মানগুলি গ্রহণ করতে পারেন। আপনি যদি এখনও এই প্রকল্পে Cloud Firestore ব্যবহার না করে থাকেন, তবে আপনাকে Cloud Firestore সাথে শুরু করুন- এ বর্ণিত Firestore-এর জন্য একটি শুরুর মোড এবং অবস্থান নির্বাচন করতে হবে।
  4. firebase init functions চালান। CLI আপনাকে একটি বিদ্যমান কোডবেস বেছে নিতে বা শুরু করতে এবং একটি নতুন নাম দিতে অনুরোধ করে। আপনি যখন সবে শুরু করছেন, ডিফল্ট অবস্থানে একটি একক কোডবেস পর্যাপ্ত; পরে, আপনার বাস্তবায়ন প্রসারিত হওয়ার সাথে সাথে আপনি কোডবেসে ফাংশন সংগঠিত করতে চাইতে পারেন।
  5. CLI আপনাকে ভাষা সমর্থনের জন্য এই বিকল্পগুলি দেয়:

    • জাভাস্ক্রিপ্ট
    • টাইপস্ক্রিপ্ট
    • পাইথন

    এই টিউটোরিয়ালের জন্য, JavaScript বা Python নির্বাচন করুন। টাইপস্ক্রিপ্টে লেখার জন্য, টাইপস্ক্রিপ্ট দিয়ে ফাংশন লিখুন দেখুন।

  6. CLI আপনাকে নির্ভরতা ইনস্টল করার একটি বিকল্প দেয়। আপনি যদি অন্য উপায়ে নির্ভরতা পরিচালনা করতে চান তবে এটি প্রত্যাখ্যান করা নিরাপদ।

এই কমান্ডগুলি সফলভাবে সম্পূর্ণ হওয়ার পরে, আপনার প্রকল্পের কাঠামোটি এইরকম দেখায়:

Node.js

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

Node.js-এর জন্য, আরম্ভ করার সময় তৈরি করা package.json ফাইলে একটি গুরুত্বপূর্ণ কী রয়েছে: "engines": {"node": "18"} । এটি ফাংশন লেখা এবং স্থাপনের জন্য আপনার Node.js সংস্করণ নির্দিষ্ট করে। আপনি অন্যান্য সমর্থিত সংস্করণ নির্বাচন করতে পারেন।

পাইথন

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
      |
      +- main.py      # Main source file for your Cloud Functions code
      |
      +- requirements.txt  #  List of the project's modules and packages 
      |
      +- venv/ # Directory where your dependencies are installed

প্রয়োজনীয় মডিউল আমদানি করুন এবং একটি অ্যাপ শুরু করুন

আপনি সেটআপের কাজগুলি সম্পন্ন করার পরে, আপনি উৎস ডিরেক্টরি খুলতে পারেন এবং নিম্নলিখিত বিভাগে বর্ণিত কোড যোগ করা শুরু করতে পারেন। এই নমুনার জন্য, আপনার প্রকল্পকে Cloud Functions এবং অ্যাডমিন SDK মডিউলগুলি আমদানি করতে হবে৷ আপনার উৎস ফাইলে নিম্নলিখিত মত লাইন যোগ করুন:

Node.js

// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.
const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/v2/https");
const {onDocumentCreated} = require("firebase-functions/v2/firestore");

// The Firebase Admin SDK to access Firestore.
const {initializeApp} = require("firebase-admin/app");
const {getFirestore} = require("firebase-admin/firestore");

initializeApp();

পাইথন

# The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers.
from firebase_functions import firestore_fn, https_fn

# The Firebase Admin SDK to access Cloud Firestore.
from firebase_admin import initialize_app, firestore
import google.cloud.firestore

app = initialize_app()

এই লাইনগুলি প্রয়োজনীয় মডিউলগুলি লোড করে এবং একটি admin অ্যাপ ইনস্ট্যান্স শুরু করে যেখান থেকে Cloud Firestore পরিবর্তন করা যেতে পারে। যেখানেই অ্যাডমিন SDK সমর্থন পাওয়া যায়, যেমন এটি FCM , Authentication , এবং Firebase Realtime Database জন্য, এটি Cloud Functions ব্যবহার করে Firebase সংহত করার একটি শক্তিশালী উপায় প্রদান করে৷

Firebase CLI স্বয়ংক্রিয়ভাবে Firebase অ্যাডমিন SDK এবং Firebase SDK Cloud Functions মডিউলগুলির জন্য ইনস্টল করে যখন আপনি আপনার প্রকল্প শুরু করেন। আপনার প্রকল্পে 3য় পক্ষের লাইব্রেরি যোগ করার বিষয়ে আরও তথ্যের জন্য, হ্যান্ডেল ডিপেন্ডেন্সি দেখুন।

"বার্তা যোগ করুন" ফাংশন যোগ করুন

"বার্তা যোগ করুন" ফাংশনের জন্য, আপনার উৎস ফাইলে এই লাইনগুলি যোগ করুন:

Node.js

// Take the text parameter passed to this HTTP endpoint and insert it into
// Firestore under the path /messages/:documentId/original
exports.addmessage = 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 getFirestore()
      .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.`});
});

পাইথন

@https_fn.on_request()
def addmessage(req: https_fn.Request) -> https_fn.Response:
    """Take the text parameter passed to this HTTP endpoint and insert it into
    a new document in the messages collection."""
    # Grab the text parameter.
    original = req.args.get("text")
    if original is None:
        return https_fn.Response("No text parameter provided", status=400)

    firestore_client: google.cloud.firestore.Client = firestore.client()

    # Push the new message into Cloud Firestore using the Firebase Admin SDK.
    _, doc_ref = firestore_client.collection("messages").add({"original": original})

    # Send back a message that we've successfully written the message
    return https_fn.Response(f"Message with ID {doc_ref.id} added.")

"বার্তা যোগ করুন" ফাংশনটি একটি HTTP শেষ বিন্দু। এন্ডপয়েন্টে যেকোন অনুরোধের ফলে আপনার প্ল্যাটফর্ম ( onRequest() বা on_request ) এর জন্য অনুরোধ হ্যান্ডলারের কাছে অনুরোধ এবং প্রতিক্রিয়া অবজেক্ট পাঠানো হয়।

HTTP ফাংশনগুলি সিঙ্ক্রোনাস ( কলযোগ্য ফাংশনের অনুরূপ), তাই আপনার যত তাড়াতাড়ি সম্ভব একটি প্রতিক্রিয়া পাঠানো উচিত এবং Cloud Firestore ব্যবহার করে কাজ স্থগিত করা উচিত। "অ্যাড মেসেজ" HTTP ফাংশন HTTP এন্ডপয়েন্টে একটি টেক্সট মান পাস করে এবং পাথ /messages/:documentId/original অধীনে ডাটাবেসে সন্নিবেশ করে।

"বড় হাতের অক্ষর তৈরি করুন" ফাংশন যোগ করুন

"বড় হাতের অক্ষর তৈরি করুন" ফাংশনের জন্য, আপনার উৎস ফাইলে এই লাইনগুলি যোগ করুন:

Node.js

// Listens for new messages added to /messages/:documentId/original
// and saves an uppercased version of the message
// to /messages/:documentId/uppercase
exports.makeuppercase = onDocumentCreated("/messages/{documentId}", (event) => {
  // Grab the current value of what was written to Firestore.
  const original = event.data.data().original;

  // Access the parameter `{documentId}` with `event.params`
  logger.log("Uppercasing", event.params.documentId, original);

  const uppercase = original.toUpperCase();

  // You must return a Promise when performing
  // asynchronous tasks inside a function
  // such as writing to Firestore.
  // Setting an 'uppercase' field in Firestore document returns a Promise.
  return event.data.ref.set({uppercase}, {merge: true});
});

পাইথন

@firestore_fn.on_document_created(document="messages/{pushId}")
def makeuppercase(event: firestore_fn.Event[firestore_fn.DocumentSnapshot | None]) -> None:
    """Listens for new documents to be added to /messages. If the document has
    an "original" field, creates an "uppercase" field containg the contents of
    "original" in upper case."""

    # Get the value of "original" if it exists.
    if event.data is None:
        return
    try:
        original = event.data.get("original")
    except KeyError:
        # No "original" field, so do nothing.
        return

    # Set the "uppercase" field.
    print(f"Uppercasing {event.params['pushId']}: {original}")
    upper = original.upper()
    event.data.reference.update({"uppercase": upper})

"মেক বড় হাতের" ফাংশনটি কার্যকর হয় যখন Cloud Firestore লেখা হয়, যা শোনার জন্য নথিটি সংজ্ঞায়িত করে। কর্মক্ষমতা কারণে, আপনি যতটা সম্ভব নির্দিষ্ট হতে হবে.

ধনুর্বন্ধনী—উদাহরণস্বরূপ, {documentId} — "প্যারামিটার", ওয়াইল্ডকার্ডগুলিকে ঘিরে থাকে যা কলব্যাকে তাদের মিলিত ডেটা প্রকাশ করে৷ Cloud Firestore যখনই নতুন বার্তা যোগ করা হয় তখন কলব্যাক ট্রিগার করে৷

Node.js-এ, ইভেন্ট-চালিত ফাংশন যেমন Cloud Firestore ইভেন্টগুলি অ্যাসিঙ্ক্রোনাস। কলব্যাক ফাংশনটি একটি null , একটি অবজেক্ট বা একটি প্রতিশ্রুতি প্রদান করবে। যদি আপনি কিছু ফেরত না দেন, ফাংশন টাইম আউট, একটি ত্রুটি সংকেত, এবং পুনরায় চেষ্টা করা হয়. সিঙ্ক, অ্যাসিঙ্ক এবং প্রতিশ্রুতি দেখুন।

আপনার ফাংশন সঞ্চালন অনুকরণ

Firebase Local Emulator Suite আপনাকে ফায়ারবেস প্রোজেক্টে স্থাপন করার পরিবর্তে আপনার স্থানীয় মেশিনে অ্যাপ তৈরি এবং পরীক্ষা করার অনুমতি দেয়। উন্নয়নের সময় স্থানীয় পরীক্ষার দৃঢ়ভাবে সুপারিশ করা হয়, কারণ এটি কোডিং ত্রুটির ঝুঁকি কমায় যা উৎপাদন পরিবেশে সম্ভাব্য খরচ বহন করতে পারে (উদাহরণস্বরূপ, একটি অসীম লুপ)।

আপনার ফাংশন অনুকরণ করতে:

  1. firebase emulators:start Emulator Suite UI এর URL এর জন্য আউটপুট শুরু করুন এবং পরীক্ষা করুন। এটি স্থানীয় হোস্টে ডিফল্ট: 4000 , কিন্তু আপনার মেশিনে একটি ভিন্ন পোর্টে হোস্ট করা হতে পারে। Emulator Suite UI খুলতে আপনার ব্রাউজারে সেই URLটি লিখুন।

  2. HTTP ফাংশনের URL-এর জন্য firebase emulators:start কমান্ডের আউটপুট পরীক্ষা করুন। এটি দেখতে http://localhost:5001/MY_PROJECT/us-central1/addMessage এর মত হবে, তা ছাড়া:

    1. MY_PROJECT আপনার প্রকল্প আইডি দিয়ে প্রতিস্থাপিত হবে।
    2. আপনার স্থানীয় মেশিনে পোর্ট ভিন্ন হতে পারে।
  3. ফাংশনের URL-এর শেষে প্রশ্ন স্ট্রিং ?text=uppercaseme যোগ করুন। এটির মতো দেখতে হবে: http://localhost:5001/MY_PROJECT/us-central1/addMessage?text=uppercaseme । ঐচ্ছিকভাবে, আপনি "বড় হাতের অক্ষর" বার্তাটিকে একটি কাস্টম বার্তাতে পরিবর্তন করতে পারেন৷

  4. আপনার ব্রাউজারে একটি নতুন ট্যাবে URLটি খুলে একটি নতুন বার্তা তৈরি করুন৷

  5. Emulator Suite UI তে ফাংশনগুলির প্রভাবগুলি দেখুন:

    1. লগ ট্যাবে, আপনি নতুন লগগুলি দেখতে পাবেন যা নির্দেশ করে যে আপনার HTTP ফাংশনগুলি সফলভাবে চলছে:

      i functions: Beginning execution of "addMessage"

      i functions: Beginning execution of "makeUppercase"

    2. Firestore ট্যাবে, আপনি একটি নথি দেখতে পাবেন যেখানে আপনার আসল বার্তার পাশাপাশি আপনার বার্তার বড় হাতের সংস্করণ রয়েছে (যদি এটি মূলত "বড় হাতের অক্ষর" হয় তবে আপনি "UPPERCASEME" দেখতে পাবেন)।

একটি উত্পাদন পরিবেশে ফাংশন স্থাপন

একবার আপনার ফাংশনগুলি এমুলেটরে পছন্দসই হিসাবে কাজ করে, আপনি উত্পাদন পরিবেশে সেগুলি স্থাপন, পরীক্ষা এবং চালানোর জন্য এগিয়ে যেতে পারেন। মনে রাখবেন যে উত্পাদনে স্থাপন করতে, আপনার প্রকল্পটি অবশ্যই ব্লেজ প্রাইসিং প্ল্যানে থাকতে হবে। Cloud Functions মূল্য দেখুন।

টিউটোরিয়াল সম্পূর্ণ করতে, আপনার ফাংশন স্থাপন করুন এবং তারপরে সেগুলি চালান।

  1. আপনার ফাংশন স্থাপন করতে এই কমান্ডটি চালান:

     firebase deploy --only functions
     

    আপনি এই কমান্ডটি চালানোর পরে, Firebase CLI যেকোনো HTTP ফাংশন এন্ডপয়েন্টের জন্য URL আউটপুট করে। আপনার টার্মিনালে, আপনি নিম্নলিখিত মত একটি লাইন দেখতে হবে:

    Function URL (addMessage): https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage
    

    URL-এ আপনার প্রোজেক্ট আইডির পাশাপাশি HTTP ফাংশনের জন্য একটি অঞ্চল রয়েছে। যদিও আপনাকে এখন এটি নিয়ে চিন্তা করার দরকার নেই, কিছু প্রোডাকশন HTTP ফাংশনগুলির নেটওয়ার্ক লেটেন্সি কমানোর জন্য একটি অবস্থান নির্দিষ্ট করা উচিত।

    আপনি যদি অ্যাক্সেস ত্রুটির সম্মুখীন হন যেমন "প্রজেক্টে অ্যাক্সেস অনুমোদন করতে অক্ষম", আপনার প্রোজেক্ট এলিয়াসিং চেক করার চেষ্টা করুন৷

  2. CLI দ্বারা ইউআরএল আউটপুট ব্যবহার করে, একটি পাঠ্য ক্যোয়ারী প্যারামিটার যোগ করুন এবং এটি একটি ব্রাউজারে খুলুন:

    https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage?text=uppercasemetoo
    

    ফাংশনটি এক্সিকিউট করে এবং ব্রাউজারটিকে Firebase কনসোলে ডাটাবেস অবস্থানে রিডাইরেক্ট করে যেখানে টেক্সট স্ট্রিং সংরক্ষণ করা হয়। এই লেখার ইভেন্টটি "মেক বড় হাতের" ফাংশনটি ট্রিগার করে, যা স্ট্রিংয়ের একটি বড় হাতের সংস্করণ লেখে।

ফাংশন স্থাপন এবং কার্যকর করার পরে, আপনি Google Cloud কনসোলে লগ দেখতে পারেন। আপনি যদি ডেভেলপমেন্ট বা প্রোডাকশনে ফাংশন মুছে ফেলতে চান, তাহলে Firebase CLI ব্যবহার করুন।

উৎপাদনে, আপনি চালানোর জন্য সর্বনিম্ন এবং সর্বোচ্চ সংখ্যক দৃষ্টান্ত সেট করে ফাংশন কর্মক্ষমতা এবং নিয়ন্ত্রণ খরচ অপ্টিমাইজ করতে চাইতে পারেন। এই রানটাইম বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য নিয়ন্ত্রণ স্কেলিং আচরণ দেখুন।

পরবর্তী পদক্ষেপ

এই ডকুমেন্টেশনে, আপনি Cloud Functions জন্য কীভাবে ফাংশনগুলি পরিচালনা করবেন সেইসাথে Cloud Functions দ্বারা সমর্থিত সমস্ত ইভেন্ট প্রকারগুলি কীভাবে পরিচালনা করবেন সে সম্পর্কে আরও শিখতে পারেন৷

Cloud Functions সম্পর্কে আরও জানতে, আপনি নিম্নলিখিতগুলিও করতে পারেন: