স্থানীয়ভাবে ফাংশন চালান

Firebase CLI-তে একটি ক্লাউড ফাংশন এমুলেটর রয়েছে যা নিম্নলিখিত ধরনের ফাংশন অনুকরণ করতে পারে:

  • HTTPS ফাংশন
  • কলযোগ্য ফাংশন
  • ফায়ারবেস প্রমাণীকরণ, রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর, ক্লাউড স্টোরেজ এবং ক্লাউড পাব/সাব থেকে ট্রিগার করা পটভূমি ফাংশন।

আপনি উৎপাদনে স্থাপন করার আগে তাদের পরীক্ষা করার জন্য স্থানীয়ভাবে ফাংশন চালাতে পারেন।

Firebase CLI ইনস্টল করুন

ক্লাউড ফাংশন এমুলেটর ব্যবহার করতে, প্রথমে Firebase CLI ইনস্টল করুন:

npm install -g firebase-tools

স্থানীয় এমুলেটর ব্যবহার করার জন্য, আপনার ক্লাউড ফাংশনগুলির উপর নির্ভর করতে হবে:

  • firebase-admin সংস্করণ 8.0.0 বা উচ্চতর।
  • firebase-functions সংস্করণ 3.0.0 বা উচ্চতর।

অ্যাডমিন শংসাপত্র সেট আপ করুন (ঐচ্ছিক)

আপনি যদি চান যে আপনার ফাংশন পরীক্ষাগুলি Firebase অ্যাডমিন SDK- এর মাধ্যমে Google API বা অন্যান্য Firebase API-এর সাথে ইন্টারঅ্যাক্ট করতে পারে, তাহলে আপনাকে অ্যাডমিন শংসাপত্র সেট আপ করতে হতে পারে।

  • ক্লাউড ফায়ারস্টোর এবং রিয়েলটাইম ডেটাবেস ট্রিগারগুলির ইতিমধ্যেই যথেষ্ট প্রমাণপত্রাদি রয়েছে এবং অতিরিক্ত সেটআপের প্রয়োজন নেই
  • Firebase API যেমন প্রমাণীকরণ এবং FCM বা Google API যেমন ক্লাউড ট্রান্সলেশন বা ক্লাউড স্পিচ সহ অন্যান্য সমস্ত API-গুলির জন্য এই বিভাগে বর্ণিত সেটআপ পদক্ষেপগুলির প্রয়োজন। আপনি ক্লাউড ফাংশন শেল বা firebase emulators:start ব্যবহার করছেন কিনা তা প্রযোজ্য।

এমুলেটেড ফাংশনের জন্য অ্যাডমিন শংসাপত্র সেট আপ করতে:

  1. Google ক্লাউড কনসোলের পরিষেবা অ্যাকাউন্ট প্যান খুলুন।
  2. নিশ্চিত করুন যে অ্যাপ ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্ট নির্বাচন করা হয়েছে, এবং তৈরি কী নির্বাচন করতে ডানদিকে বিকল্প মেনু ব্যবহার করুন।
  3. প্রম্পট করা হলে, কী ধরণের জন্য JSON নির্বাচন করুন এবং তৈরি করুন ক্লিক করুন
  4. ডাউনলোড করা কীটিতে নির্দেশ করতে আপনার Google ডিফল্ট শংসাপত্র সেট করুন:

    ইউনিক্স

    export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    firebase emulators:start
    

    উইন্ডোজ

    set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    firebase emulators:start
    

এই পদক্ষেপগুলি সম্পূর্ণ করার পরে, আপনার ফাংশন পরীক্ষাগুলি অ্যাডমিন SDK ব্যবহার করে Firebase এবং Google APIগুলি অ্যাক্সেস করতে পারে৷ উদাহরণস্বরূপ, একটি প্রমাণীকরণ ট্রিগার পরীক্ষা করার সময়, অনুকরণ করা ফাংশন admin.auth().getUserByEmail(email) কল করতে পারে।

ফাংশন কনফিগারেশন সেট আপ করুন (ঐচ্ছিক)

আপনি যদি কাস্টম ফাংশন কনফিগারেশন ভেরিয়েবল ব্যবহার করেন তবে প্রথমে আপনার স্থানীয় পরিবেশে আপনার কাস্টম কনফিগারেশন ( functions ডিরেক্টরির মধ্যে এটি চালান) পেতে কমান্ডটি চালান:

firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json

এমুলেটর স্যুট চালান

ক্লাউড ফাংশন এমুলেটর চালানোর জন্য, emulators:start কমান্ড ব্যবহার করুন:

firebase emulators:start

emulators:start কমান্ড ক্লাউড ফাংশন, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস এবং ফায়ারবেস হোস্টিং-এর জন্য এমুলেটর শুরু করবে firebase init ব্যবহার করে আপনার স্থানীয় প্রকল্পে আপনি যে পণ্যগুলি শুরু করেছেন তার উপর ভিত্তি করে। আপনি যদি একটি নির্দিষ্ট এমুলেটর শুরু করতে চান তবে --only পতাকা ব্যবহার করুন:

firebase emulators:start --only functions

আপনি যদি এমুলেটরগুলি শুরু হওয়ার পরে একটি টেস্ট স্যুট বা টেস্টিং স্ক্রিপ্ট চালাতে চান, তাহলে emulators:exec কমান্ডটি ব্যবহার করুন:

firebase emulators:exec "./my-test.sh"

এমুলেটরদের সাথে কথা বলার জন্য আপনার অ্যাপটিকে ইনস্ট্রুমেন্ট করুন

এমুলেটরগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার অ্যাপটিকে ইনস্ট্রুমেন্ট করতে, আপনাকে কিছু অতিরিক্ত কনফিগারেশন করতে হতে পারে।

কলযোগ্য ফাংশনগুলির জন্য আপনার অ্যাপকে উপকরণ করুন

যদি আপনার প্রোটোটাইপ এবং পরীক্ষামূলক ক্রিয়াকলাপগুলি কলযোগ্য ব্যাকএন্ড ফাংশন জড়িত থাকে, তাহলে Firebase এমুলেটরের জন্য ক্লাউড ফাংশনের সাথে মিথস্ক্রিয়া কনফিগার করুন এইভাবে:

অ্যান্ড্রয়েড
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFunctions functions = FirebaseFunctions.getInstance();
        functions.useEmulator("10.0.2.2", 5001);
সুইফট
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

Web version 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

Web version 8

firebase.functions().useEmulator("localhost", 5001);

এইচটিটিপিএস ফাংশন ইমুলেশনের জন্য আপনার অ্যাপকে ইনস্ট্রুমেন্ট করুন

আপনার কোডের প্রতিটি HTTPS ফাংশন নিম্নলিখিত URL বিন্যাস ব্যবহার করে স্থানীয় এমুলেটর থেকে পরিবেশন করা হবে:

http:// $HOST : $PORT / $PROJECT / $REGION / $NAME

উদাহরণস্বরূপ ডিফল্ট হোস্ট পোর্ট এবং অঞ্চল সহ একটি সাধারণ helloWorld ফাংশন এখানে পরিবেশন করা হবে:

https://localhost:5001/ $PROJECT /us-central1/helloWorld

ব্যাকগ্রাউন্ড-ট্রিগার করা ফাংশন ইমুলেশনের জন্য আপনার অ্যাপকে ইনস্ট্রুমেন্ট করুন

ক্লাউড ফাংশন এমুলেটর নিম্নলিখিত উত্স থেকে ব্যাকগ্রাউন্ড-ট্রিগার করা ফাংশন সমর্থন করে:

  • রিয়েলটাইম ডাটাবেস এমুলেটর
  • ক্লাউড ফায়ারস্টোর এমুলেটর
  • প্রমাণীকরণ এমুলেটর
  • পাব/সাব এমুলেটর

ব্যাকগ্রাউন্ড ইভেন্টগুলি ট্রিগার করতে, আপনার প্ল্যাটফর্মের জন্য SDK ব্যবহার করে এমুলেটরগুলির সাথে আপনার অ্যাপ বা পরীক্ষার কোড সংযুক্ত করুন।

অন্যান্য পরিষেবার সাথে মিথস্ক্রিয়া

এমুলেটর স্যুটে একাধিক এমুলেটর রয়েছে, যা ক্রস-প্রোডাক্ট মিথস্ক্রিয়া পরীক্ষা করতে সক্ষম করে।

ক্লাউড ফায়ারস্টোর

আপনার যদি এমন ফাংশন থাকে যা ক্লাউড ফায়ারস্টোরে লেখার জন্য ফায়ারবেস অ্যাডমিন SDK ব্যবহার করে, এই লেখাগুলি ক্লাউড ফায়ারস্টোর এমুলেটর চালু হলে পাঠানো হবে। যদি এই লেখাগুলির দ্বারা আরও ফাংশন ট্রিগার করা হয়, সেগুলি ক্লাউড ফাংশন এমুলেটরে চালানো হবে।

মেঘ স্টোরেজ

আপনার যদি ক্লাউড স্টোরেজ এ লেখার জন্য ফায়ারবেস অ্যাডমিন SDK (সংস্করণ 9.7.0 বা তার বেশি) ব্যবহার করে এমন ফাংশন থাকে, তাহলে এই লেখাগুলি ক্লাউড স্টোরেজ এমুলেটর চালু হলে পাঠানো হবে। যদি এই লেখাগুলির দ্বারা আরও ফাংশন ট্রিগার করা হয়, সেগুলি ক্লাউড ফাংশন এমুলেটরে চালানো হবে।

ফায়ারবেস প্রমাণীকরণ

আপনার যদি ফায়ারবেস প্রমাণীকরণে লেখার জন্য ফায়ারবেস অ্যাডমিন SDK (সংস্করণ 9.3.0 বা তার বেশি) ব্যবহার করে এমন ফাংশন থাকে, যদি এটি চলমান থাকে তবে এই লেখাগুলি Auth এমুলেটরে পাঠানো হবে। যদি এই লেখাগুলির দ্বারা আরও ফাংশন ট্রিগার করা হয়, সেগুলি ক্লাউড ফাংশন এমুলেটরে চালানো হবে।

ফায়ারবেস হোস্টিং

আপনি যদি ফায়ারবেস হোস্টিংয়ের জন্য গতিশীল সামগ্রী তৈরি করতে ক্লাউড ফাংশন ব্যবহার করেন, firebase emulators:start হোস্টিংয়ের জন্য প্রক্সি হিসাবে আপনার স্থানীয় HTTP ফাংশন ব্যবহার করে।

লগিং

এমুলেটর আপনার ফাংশন থেকে লগগুলিকে টার্মিনাল উইন্ডোতে স্ট্রিম করে যেখানে তারা চলে। এটি আপনার ফাংশনের ভিতরে console.log( console.log() , console.info() , console.error() , এবং console.warn() স্টেটমেন্ট থেকে সমস্ত আউটপুট প্রদর্শন করে৷

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

Firebase এমুলেটর স্যুট ব্যবহারের একটি সম্পূর্ণ উদাহরণের জন্য, টেস্টিং কুইকস্টার্ট নমুনা দেখুন।