Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

ক্লাউড কার্যাবলী এমুলেটর এ আপনার অ্যাপ্লিকেশান সংযোগ করার আগে, আপনি নিশ্চিত করুন সামগ্রিক Firebase স্থানীয় এমুলেটর সুইট কর্মপ্রবাহ বুঝতে , এবং আপনি যে ইনস্টল ও কনফিগার স্থানীয় এমুলেটর সুইট ও তার পর্যালোচনা CLI কমান্ড

একটি Firebase প্রজেক্ট বেছে নিন

ফায়ারবেস স্থানীয় এমুলেটর স্যুট একটি একক ফায়ারবেস প্রকল্পের জন্য পণ্য অনুকরণ করে।

ব্যবহারের প্রকল্পের নির্বাচন করতে, আগে আপনি, emulators শুরু CLI রান firebase use আপনার কাজের ডিরেক্টরির মধ্যে। অথবা, আপনি পাস করতে পারেন --project প্রতিটি এমুলেটর কমান্ড পতাকা।

স্থানীয় এমুলেটর সুইট বাস্তব Firebase প্রকল্প এবং ডেমো প্রকল্পের এমুলেশন সমর্থন করে।

প্রকল্পের ধরন বৈশিষ্ট্য এমুলেটর দিয়ে ব্যবহার করুন
বাস্তব

একটি বাস্তব ফায়ারবেস প্রকল্প হল আপনার তৈরি এবং কনফিগার করা (সম্ভবত ফায়ারবেস কনসোলের মাধ্যমে)।

বাস্তব প্রকল্পের লাইভ রিসোর্স আছে, যেমন ডাটাবেস ইন্সট্যান্স, স্টোরেজ বালতি, ফাংশন, অথবা অন্য কোন রিসোর্স যা আপনি ফায়ারবেস প্রজেক্টের জন্য সেট আপ করেছেন।

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

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

ডেমো

একটি ডেমো Firebase প্রকল্পের কোনো সত্যিকারের Firebase কনফিগারেশন এবং কোনো লাইভ সম্পদ আছে। এই প্রকল্পগুলি সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে অ্যাক্সেস করা হয়।

ডেমো প্রকল্পগুলির জন্য প্রকল্প ID উপস্থিত রয়েছে demo- উপসর্গ।

যখন ডেমো Firebase প্রকল্প, আপনার অ্যাপ্লিকেশান এবং শুধুমাত্র emulators মাধ্যমে কোডের ইন্টারঅ্যাক্ট সঙ্গে কাজ। যদি আপনার অ্যাপ একটি রিসোর্সের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য একটি এমুলেটর চলছে না, সেই কোডটি ব্যর্থ হবে।

আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিই। সুবিধাগুলির মধ্যে রয়েছে:

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

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

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

আপনার প্রোটোটাইপ এবং পরীক্ষা কার্যক্রম জড়িত এমন 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 ব্যবহার করে এমুলেটরদের সাথে আপনার অ্যাপ বা টেস্ট কোডটি সংযুক্ত করুন।

ক্লাউড ফাংশন পরীক্ষা করার জন্য অন্য কোন সরঞ্জাম বিদ্যমান?

ক্লাউড ফাংশন এমুলেটর অন্যান্য প্রোটোটাইপ এবং পরীক্ষার সরঞ্জাম দ্বারা পরিপূরক:

  • ক্লাউড ফাংশন শেল, যা ইন্টারেক্টিভ, পুনরাবৃত্তিমূলক ফাংশন প্রোটোটাইপিং এবং বিকাশের অনুমতি দেয়। শেল ক্লাউড ফাংশন এমুলেটরকে উন্নয়নের জন্য REPL- স্টাইলের ইন্টারফেসের সাথে নিযুক্ত করে। ক্লাউড ফায়ারস্টোর বা রিয়েলটাইম ডাটাবেস এমুলেটরগুলির সাথে কোন ইন্টিগ্রেশন প্রদান করা হয় না। শেল ব্যবহার করে, আপনি ডেটা উপহাস করেন এবং স্থানীয় এমুলেটর স্যুট বর্তমানে সমর্থন করে না এমন পণ্যগুলির সাথে মিথস্ক্রিয়া অনুকরণ করার জন্য ফাংশন কলগুলি সম্পাদন করে: ক্লাউড স্টোরেজ, পাব/সাব, অ্যানালিটিক্স, রিমোট কনফিগ, স্টোরেজ, অথ এবং ক্র্যাশলাইটিক্স।
  • ক্লাউড ফাংশনগুলির জন্য ফায়ারবেস টেস্ট SDK, ফাংশন ডেভেলপমেন্টের জন্য মোচা ফ্রেমওয়ার্ক সহ একটি Node.js। প্রকৃতপক্ষে, ক্লাউড ফাংশন টেস্ট SDK ক্লাউড ফাংশন শেলের উপরে অটোমেশন প্রদান করে।

ক্লাউড কার্যাবলী সম্পর্কে এ শেল এবং ক্লাউড কার্যাবলী টেস্ট SDK এর ক্ষেত্রে আপনি আরও জানতে পারেন টেস্ট ফাংশন ইন্টারেক্টিভ এবং ইউনিট ক্লাউড কার্যাবলী পরীক্ষার

কিভাবে ক্লাউড ফাংশন এমুলেটর উৎপাদন থেকে আলাদা

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

ক্লাউড আইএএম

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

মেমরি এবং প্রসেসর সীমাবদ্ধতা

এমুলেটর আপনার ফাংশনগুলির জন্য মেমরি বা প্রসেসরের বিধিনিষেধ প্রয়োগ করে না। যাইহোক, এমুলেটর আউট মাধ্যমে ফাংশন সমর্থন সময়জ্ঞান নেই timeoutSeconds যুক্তি রানটাইম।

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

স্থানীয় এবং উত্পাদন পরিবেশের পার্থক্যের জন্য পরিকল্পনা

যেহেতু এমুলেটরটি আপনার স্থানীয় মেশিনে চলে, তাই এটি অ্যাপ্লিকেশন এবং বিল্ট-ইন প্রোগ্রাম এবং ইউটিলিটিগুলির জন্য আপনার স্থানীয় পরিবেশের উপর নির্ভর করে।

সচেতন থাকুন যে ফাংশন বিকাশের জন্য আপনার স্থানীয় পরিবেশ Google উত্পাদন পরিবেশ থেকে ভিন্ন হতে পারে:

  • অ্যাপ্লিকেশন আপনি স্থানীয়ভাবে ইনস্টল (থেকে যেমন করে ImageMagick প্রকাশনা পরিবেশ অনুকরণ এই টিউটোরিয়াল ) উত্পাদন থেকে আচরণ ভিন্ন হতে পারে, বিশেষ করে যদি আপনি একটি ভিন্ন সংস্করণ প্রয়োজন হয় বা একটি নন-লিনাক্স পরিবেশে বিকাশ। আপনার ফাংশন স্থাপনার পাশাপাশি অনুপস্থিত প্রোগ্রামের আপনার নিজের বাইনারি কপি স্থাপন করার কথা বিবেচনা করুন।

  • একইভাবে, বিল্ট-ইন ইউটিলিটি (যেমন, মত শেল কমান্ড ls , mkdir ), উৎপাদন পাওয়া সংস্করণ থেকে ভিন্ন হতে পারে বিশেষ করে যদি আপনি একটি অ-লিনাক্স পরিবেশে বিকাশ করছি (যেমন, MacOS)। আপনি নেটিভ কমান্ডগুলির জন্য শুধুমাত্র নোড বিকল্প ব্যবহার করে, অথবা আপনার স্থাপনার সাথে একত্রিত হওয়ার জন্য লিনাক্স বাইনারি তৈরি করে এই সমস্যাটি পরিচালনা করতে পারেন।

পুনরায় চেষ্টা করা হচ্ছে

ক্লাউড ফাংশন এমুলেটর ব্যর্থতার উপর ফাংশন পুনরায় চেষ্টা সমর্থন করে না।

তারপর কি?