ফায়ারবেস সিএলআইতে একটি ক্লাউড ফাংশনস এমুলেটর অন্তর্ভুক্ত রয়েছে যা নিম্নলিখিত ফাংশনের ধরণগুলি অনুকরণ করতে পারে:
- HTTPS ফাংশন
- কলযোগ্য ফাংশন
- প্রমাণীকরণ, রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ার স্টোর এবং ক্লাউড পাব / সাব থেকে পটভূমি ফাংশনগুলি ট্রিগার করে।
উত্পাদনে মোতায়েনের আগে তাদের পরীক্ষা করার জন্য আপনি স্থানীয়ভাবে ফাংশন পরিচালনা করতে পারেন।
ফায়ারবেস সিএলআই ইনস্টল করুন
ক্লাউড ফাংশন এমুলেটর ব্যবহার করতে প্রথমে ফায়ারবেস সিএলআই ইনস্টল করুন:
npm install -g firebase-tools
স্থানীয় এমুলেটর ব্যবহার করতে, আপনার ক্লাউড ফাংশনগুলি অবশ্যই এর উপর নির্ভর করবে:
-
firebase-admin
সংস্করণ8.0.0
বা উচ্চতর। -
firebase-functions
সংস্করণ3.0.0
বা উচ্চতর।
প্রশাসক শংসাপত্রগুলি সেট আপ করুন (alচ্ছিক)
আপনি যদি ফায়ারবেস অ্যাডমিন এসডিকে মাধ্যমে আপনার ফাংশন পরীক্ষাগুলি গুগল এপিআই বা অন্যান্য ফায়ারবেস এপিআইয়ের সাথে ইন্টারঅ্যাক্ট করতে চান তবে আপনাকে অ্যাডমিন শংসাপত্রগুলি সেট আপ করতে হবে।
- ক্লাউড Firestore এবং রিয়েলটাইম ডাটাবেস ট্রিগার ইতিমধ্যে পর্যাপ্ত প্রমাণপত্রাদি, এবং অতিরিক্ত সেটআপ প্রয়োজন হয় না।
- প্রমাণীকরণ এবং এফসিএম বা ক্লাউড ট্রান্সলেশন বা ক্লাউড স্পিচের মতো গুগল এপিআই সহ ফায়ারবেস এপিআই সহ অন্যান্য সমস্ত API গুলি এই বিভাগে বর্ণিত সেটআপ ধাপগুলির প্রয়োজন। এটি আপনি ফাংশন শেল বা
firebase emulators:start
ব্যবহার করছেন কিনা তা প্রযোজ্যfirebase emulators:start
।
এমুলেটেড ফাংশনগুলির জন্য অ্যাডমিন শংসাপত্রগুলি সেট আপ করতে:
- গুগল ক্লাউড কনসোলের পরিষেবা অ্যাকাউন্ট ফলকটি খুলুন।
- অ্যাপ ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্টটি নির্বাচিত কিনা তা নিশ্চিত করুন এবং তৈরি কীটি নির্বাচন করতে ডানদিকে বিকল্প মেনুটি ব্যবহার করুন ।
- জিজ্ঞাসা করা হলে, কী ধরণের জন্য JSON নির্বাচন করুন এবং তৈরি করুন ক্লিক করুন ।
ডাউনলোড করা কীতে নির্দেশ করতে আপনার Google ডিফল্ট শংসাপত্রগুলি সেট করুন:
ইউনিক্স
$ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json" $ firebase emulators:start
উইন্ডোজ
$ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json $ firebase emulators:start
এই পদক্ষেপগুলি শেষ করার পরে, আপনার ফাংশন পরীক্ষাগুলি অ্যাডমিন এসডিকে ব্যবহার করে ফায়ারবেস এবং গুগল এপিআইগুলিতে অ্যাক্সেস করতে পারে। উদাহরণস্বরূপ, একটি প্রমাণীকরণ ট্রিগার পরীক্ষা করার সময়, admin.auth().getUserByEmail(email)
ফাংশনটি admin.auth().getUserByEmail(email)
কল করতে পারে।
ফাংশন কনফিগারেশন সেট আপ করুন (alচ্ছিক)
আপনি যদি কাস্টম ফাংশন কনফিগারেশন ভেরিয়েবল ব্যবহার করে থাকেন তবে প্রথমে আপনার স্থানীয় পরিবেশে আপনার কাস্টম কনফিগারেশন (এটি functions
ডিরেক্টরিতে চালনা করুন) পেতে কমান্ডটি চালান:
firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json
firebase functions:shell
এমুলেটর স্যুট চালান
ক্লাউড ফাংশন এমুলেটরটি চালনার জন্য, অনুকরণকারীগুলি ব্যবহার করুন emulators:start
কমান্ড emulators:start
:
firebase emulators:start
emulators:start
কমান্ড আপনার স্থানীয় প্রকল্পে firebase init
ব্যবহার করে আপনি যে পণ্যগুলি শুরু করেছেন তার উপর ভিত্তি করে ক্লাউড ফাংশন, ক্লাউড ফায়ার স্টোর, রিয়েলটাইম ডেটাবেস এবং ফায়ারবেস হোস্টিংয়ের জন্য এমুলেটর শুরু করবে। আপনি একটি নির্দিষ্ট এমুলেটর শুরু করতে চান করেন, ব্যবহার --only
পতাকা:
firebase emulators:start --only functions
যদি আপনি এমুলেটরগুলি শুরু করার পরে কোনও পরীক্ষা স্যুট বা পরীক্ষার স্ক্রিপ্ট চালাতে চান তবে emulators:exec
কমান্ডটি ব্যবহার করুন:
firebase emulators:exec "./my-test.sh"
অনুকরণকারীদের সাথে কথা বলার জন্য আপনার অ্যাপ্লিকেশনটিকে নির্দেশ দিন
আপনার অ্যাপ্লিকেশনকে এমুলেটরগুলির সাথে যোগাযোগের জন্য ইন্সট্রুমেন্ট করার জন্য আপনাকে কিছু অতিরিক্ত কনফিগারেশন করতে হবে।
কলযোগ্য ফাংশনগুলির জন্য আপনার অ্যাপ্লিকেশনটির উপকরণ করুন
যদি আপনার প্রোটোটাইপ এবং পরীক্ষামূলক ক্রিয়াকলাপগুলিতে কলযোগ্য ব্যাকএন্ড ফাংশনগুলি জড়িত থাকে তবে ফায়ারবেস এমুলেটরের জন্য ক্লাউড ফাংশনগুলির সাথে ইন্টারঅ্যাকশনটি কনফিগার করুন:
অ্যান্ড্রয়েড
// 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")
ওয়েব ভি 8
firebase.functions().useEmulator("localhost", 5001);
ওয়েব ভি 9
import { getApp } from "firebase/app"; import { getFunctions, useFunctionsEmulator } from "firebase/functions"; const functions = getFunctions(getApp()); useFunctionsEmulator(functions, "localhost", 5001);
এইচটিটিপিএস ফাংশনগুলির অনুকরণের জন্য আপনার অ্যাপ্লিকেশনটিকে উপকরণ দিন
আপনার কোডে প্রতিটি HTTPS ফাংশন নিম্নলিখিত ইউআরএল ফর্ম্যাটটি ব্যবহার করে স্থানীয় এমুলেটর থেকে পরিবেশন করা হবে:
http:// $HOST : $PORT / $PROJECT / $REGION / $NAME
উদাহরণস্বরূপ, ডিফল্ট হোস্ট পোর্ট এবং অঞ্চল সহ একটি সাধারণ helloWorld
ফাংশন এখানে পরিবেশন করা হবে:
https://localhost:5001/ $PROJECT /us-central1/helloWorld
ব্যাকগ্রাউন্ড-ট্রিগারযুক্ত ফাংশন এমুলেশনের জন্য আপনার অ্যাপ্লিকেশনটিকে ইনস্ট্রুমেন্ট করুন
ক্লাউড ফাংশনস এমুলেটরটি নিম্নলিখিত উত্সগুলি থেকে ব্যাকগ্রাউন্ড ট্রিগারযুক্ত ফাংশনগুলিকে সমর্থন করে:
- রিয়েলটাইম ডেটাবেস এমুলেটর
- ক্লাউড ফায়ার স্টোর এমুলেটর
- প্রমাণীকরণ এমুলেটর
- পাব / সাব এমুলেটর
ব্যাকগ্রাউন্ড ইভেন্টগুলি ট্রিগার করতে, আপনার প্ল্যাটফর্মের জন্য এসডিকে ব্যবহার করে এমুলেটরগুলির সাথে আপনার অ্যাপ্লিকেশন বা পরীক্ষার কোডটি সংযুক্ত করুন।
অন্যান্য পরিষেবার সাথে ইন্টারঅ্যাকশন
এমুলেটর স্যুটে একাধিক এমুলেটর রয়েছে, যা ক্রস-প্রোডাক্ট ইন্টারঅ্যাকশনগুলির পরীক্ষা সক্ষম করে।
ক্লাউড ফায়ার স্টোর
আপনার যদি ক্লাউড ফাংশনগুলি রয়েছে যা ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করে ক্লাউড ফায়ার স্টোরে লিখছেন, এই লেখাগুলি যদি চালু হয় তবে এটি ক্লাউড ফায়ারস্টোর এমুলেটরকে পাঠানো হবে। যদি এই লেখাগুলি দ্বারা আরও ক্লাউড ফাংশনগুলি ট্রিগার করা হয় তবে সেগুলি ক্লাউড ফাংশনস এমুলেটরটিতে চালানো হবে।
ফায়ারবেস হোস্টিং
আপনি যদি ফায়ারবেস হোস্টিংয়ের জন্য গতিশীল সামগ্রী তৈরি করতে ক্লাউড ফাংশন ব্যবহার করছেন তবে firebase emulators:start
হোস্টিংয়ের জন্য প্রক্সি হিসাবে আপনার স্থানীয় এইচটিটিপি ফাংশন ব্যবহার firebase emulators:start
।
লগিং
এমুলেটর আপনার ফাংশন থেকে টার্মিনাল উইন্ডোতে চালিত করে যেখানে তারা চালায়। এটি আপনার ফাংশনের অভ্যন্তরে console.log()
, console.info()
, console.error()
, এবং console.warn()
বিবৃতি থেকে সমস্ত আউটপুট প্রদর্শন করে।
পরবর্তী পদক্ষেপ
ফায়ারবেস এমুলেটর স্যুটটি ব্যবহারের সম্পূর্ণ উদাহরণের জন্য, টেস্টিং কুইকস্টার্ট নমুনা দেখুন ।