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

ফায়ারবেস সিএলআইতে একটি ক্লাউড ফাংশন এমুলেটর অন্তর্ভুক্ত রয়েছে যা নিম্নলিখিত ফাংশনের ধরন অনুকরণ করতে পারে:

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

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

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

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

npm install -g firebase-tools

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

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

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

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

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

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

  1. খুলুন পরিষেবা অ্যাকাউন্টস ফলকে Google ক্লাউড কনসোলে করুন।
  2. নিশ্চিত করুন যে App ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্ট নির্বাচন করা হয় করুন, এবং কী তৈরি করুন নির্বাচন করতে ডান দিকে অপশন মেনু ব্যবহার করুন।
  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
    

এই পদক্ষেপগুলি সম্পন্ন করার পর, আপনার ফাংশন পরীক্ষা ব্যবহার Firebase এবং Google API গুলি অ্যাক্সেস করতে পারেন এডমিন SDK এর । উদাহরণস্বরূপ, যখন একটি প্রমাণীকরণ ট্রিগার পরীক্ষা emulated ফাংশন বলতে পেরেছিলাম 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

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

ক্লাউড কার্যাবলী চালানো এমুলেটর, ব্যবহার করার জন্য emulators:start কমান্ড প্রয়োগ করুন:

firebase emulators:start

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

firebase emulators:start --only functions

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

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

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

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

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

আপনার প্রোটোটাইপ এবং পরীক্ষা কার্যক্রম জড়িত এমন callable ব্যাকএন্ড ফাংশন , ভালো 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);
iOS - সুইফট
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

ওয়েব সংস্করণ 9

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

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

ওয়েব সংস্করণ 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

লগিং

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

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

Firebase এমুলেটর স্যুট ব্যবহার করে একটি পূর্ণ উদাহরণস্বরূপ, দেখুন পরীক্ষার দ্রুতশুরু নমুনা