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

স্থানীয় এমুলেটর স্যুট ইনস্টল করুন, কনফিগার করুন এবং সংহত করুন

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

স্থানীয় এমুলেটর স্যুট ইনস্টল করুন

এমুলেটর স্যুট ইনস্টল করার আগে আপনার প্রয়োজন হবে:

  • Node.js সংস্করণ 8.0 বা উচ্চতর।
  • জাভা সংস্করণ 1.8 বা উচ্চতর।

এমুলেটর স্যুট ইনস্টল করতে:

  1. ইনস্টল করুন Firebase CLI । যদি আপনি ইতিমধ্যে Firebase CLI ইনস্টল না পারেন, এখন এটি ইনস্টল করুন । এমুলেটর স্যুট ব্যবহার করার জন্য আপনার CLI সংস্করণ 8.14.0 বা উচ্চতর প্রয়োজন হবে। আপনি না পরীক্ষা করতে কোন সংস্করণটি আপনার ইনস্টল করা নিম্নোক্ত কমান্ড ব্যবহার করে:
    firebase --version
  2. যদি আপনি ইতিমধ্যে এটি না করে থাকে, তাহলে একটি Firebase প্রকল্প হিসেবে সাম্প্রতিক কাজ করা আরম্ভ, ব্যবহার করা কোন পণ্য নির্দিষ্ট করার পর্দায় আসেন অনুরোধ জানানো নিম্নলিখিত:
    firebase init
  3. এমুলেটর স্যুট সেট আপ করুন। এই কমান্ডটি একটি কনফিগারেশন উইজার্ড শুরু করে যা আপনাকে আগ্রহের এমুলেটর নির্বাচন করতে, সংশ্লিষ্ট এমুলেটর বাইনারি ফাইল ডাউনলোড করতে এবং ডিফল্ট উপযুক্ত না হলে এমুলেটর পোর্ট সেট করতে দেয়।
    firebase init emulators

একবার একটি এমুলেটর ইনস্টল হয়ে গেলে, কোন আপডেট চেক করা হয় না এবং আপনার Firebase CLI সংস্করণ আপডেট না করা পর্যন্ত কোন অতিরিক্ত স্বয়ংক্রিয় ডাউনলোড হবে না।

এমুলেটর স্যুট কনফিগার করুন

আপনি ঐচ্ছিকভাবে নিরাপত্তা বিধি সংজ্ঞায় বেশ emulators নেটওয়ার্কের 'network পোর্ট এবং পথ কনফিগার করতে পারেন firebase.json ফাইল:

  • চলমান দ্বারা এমুলেটর পরিবর্তন পোর্ট firebase init emulators বা সম্পাদনা করে firebase.json নিজে।
  • সম্পাদনা করে নিরাপত্তা বিধি সংজ্ঞা পাথ পরিবর্তন firebase.json নিজে।

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

কমান্ড বর্ণনা
init এমুলেটর একটি এমুলেটর আরম্ভ উইজার্ড শুরু করুন। এমুলেটরগুলি ইনস্টল করার জন্য চিহ্নিত করুন এবং বিকল্পভাবে এমুলেটর পোর্ট সেটিংস নির্দিষ্ট করুন। init emulators অ নাশক হয়; ডিফল্ট গ্রহণ বর্তমান এমুলেটর কনফিগারেশন সংরক্ষণ করবে।

পোর্ট কনফিগারেশন

প্রতিটি এমুলেটর একটি পছন্দের ডিফল্ট মান সহ আপনার মেশিনের একটি ভিন্ন পোর্টে আবদ্ধ থাকে।

এমুলেটর ডিফল্ট পোর্ট
প্রমাণীকরণ 9099
এমুলেটর স্যুট UI 4000
ক্লাউড ফাংশন 5001
রিয়েলটাইম ডাটাবেস 9000
ক্লাউড ফায়ারস্টোর 8080
মেঘ স্টোরেজ 9199
ফায়ারবেস হোস্টিং 5000
পাব/সাব 8085

নিরাপত্তা নিয়ম কনফিগারেশন

Emulators থেকে সুরক্ষা বিধি কনফিগারেশন লাগবে database , firestore এবং storage মধ্যে কনফিগারেশন কী firebase.json

{
  // Existing firebase configuration ...
  "database": {
    "rules": "database.rules.json"
  },
  "firestore" {
    "rules": "firestore.rules"
  },
  "storage" {
    "rules": "storage.rules"
  }

  // ...

  // Optional emulator configuration. Default
  // values are used if absent.
  "emulators": {
    "firestore": {
      "port": "8080"
    },
    "ui": {
      "enabled": true,      // Default is `true`
      "port": 4000          // If unspecified, see CLI log for selected port
    },
    "auth": {
      "port": "9099"
    },
    "pubsub": {
      "port": "8085"
    }
  }
}

এমুলেটর শুরু করুন

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

কমান্ড বর্ণনা
emulators: শুরু করুন কনফিগার Firebase পণ্যের জন্য স্টার্ট emulators firebase.json । এমুলেটর প্রক্রিয়াগুলি স্পষ্টভাবে বন্ধ না হওয়া পর্যন্ত চলতে থাকবে। কলিং emulators:start থেকে emulators ডাউনলোড করবে ~ / .cache / firebase / emulators / যদি তারা ইতিমধ্যে ইনস্টল করা হয় না।
পতাকা বর্ণনা
--only চ্ছিক। কোন এমুলেটর শুরু হয় তা সীমিত করুন। এমুলেটর নামের একটি কমা দ্বারা বিচ্ছিন্ন তালিকা সরবরাহ করুন, এক বা একাধিক 'অথ', 'ডাটাবেস', 'ফায়ারস্টোর', 'ফাংশন', 'হোস্টিং', বা 'পাবসাব' উল্লেখ করুন।
--inspect-functions debug_port চ্ছিক। নির্দিষ্ট পোর্টে ফাংশনের ব্রেকপয়েন্ট ডিবাগিং সক্ষম করতে ক্লাউড ফাংশন এমুলেটর ব্যবহার করুন (অথবা যুক্তি বাদ দিলে ডিফল্ট পোর্ট 9229)। মনে রাখবেন যে যখন এই পতাকাটি সরবরাহ করা হয়, ক্লাউড ফাংশন এমুলেটরটি একটি বিশেষ সিরিয়ালাইজড এক্সিকিউশন মোডে স্যুইচ করে যেখানে ফাংশনগুলি একক প্রক্রিয়ায়, ক্রমানুসারে (FIFO) ক্রমে সম্পাদিত হয়; এটি ফাংশন ডিবাগিংকে সহজ করে তোলে, যদিও আচরণটি মাল্টি-প্রসেস থেকে আলাদা, ক্লাউডে ফাংশনের সমান্তরাল এক্সিকিউশন।
--export-on-exit= চ্ছিক। প্রমাণীকরণ, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর ব্যবহার করুন। এমুলেটর (গুলি) রপ্তানি ডেটা করার জন্য একটি ডিরেক্টরি যখন হরতাল ঘটে, হিসাবে বর্ণিত নির্দেশ emulators:export কমান্ড। এক্সপোর্ট ডিরেক্টরিটি এই পতাকা দিয়ে চিহ্নিত করা যাবে: firebase emulators:start --export-on-exit=./saved-data । তাহলে --import ব্যবহার করা হয়, রপ্তানি পথ একই ডিফল্ট; উদাহরণস্বরূপ: firebase emulators:start --import=./data-path --export-on-exit । সর্বশেষে, ইচ্ছা হলে, এর বিভিন্ন ডিরেক্টরি পাথ পাস --import এবং --export-on-exit পতাকা।
--import= import_directory চ্ছিক। প্রমাণীকরণ, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর ব্যবহার করুন। আমদানি ডেটা ব্যবহার সংরক্ষণ --export-on-exit প্রারম্ভে বিকল্প বা emulators:export একটি চলমান প্রমাণীকরণ, ক্লাউড Firestore, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর উদাহরণস্বরূপ আদেশ করুন। বর্তমানে এমুলেটর মেমরিতে থাকা যেকোন ডেটা মুছে যাবে।
emulators: Exec scriptpath এ স্ক্রিপ্টটি রান scriptpath কনফিগার Firebase পণ্যের জন্য emulators শুরু করার পরে firebase.json । স্ক্রিপ্ট চালানো শেষ হলে এমুলেটর প্রক্রিয়াগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।
পতাকা বর্ণনা
--only চ্ছিক। কোন এমুলেটর শুরু হয় তা সীমিত করুন। 'ফায়ারস্টোর', 'ডাটাবেস', 'ফাংশন', 'হোস্টিং', বা 'পাবসুব' উল্লেখ করে একটি বা একাধিক এমুলেটর নামের একটি কমা দ্বারা বিচ্ছিন্ন তালিকা সরবরাহ করুন।
--inspect-functions debug_port চ্ছিক। নির্দিষ্ট পোর্টে ফাংশনের ব্রেকপয়েন্ট ডিবাগিং সক্ষম করতে ক্লাউড ফাংশন এমুলেটর ব্যবহার করুন (অথবা যুক্তি বাদ দিলে ডিফল্ট পোর্ট 9229)। মনে রাখবেন যে যখন এই পতাকাটি সরবরাহ করা হয়, ক্লাউড ফাংশন এমুলেটরটি একটি বিশেষ সিরিয়ালাইজড এক্সিকিউশন মোডে স্যুইচ করে যেখানে ফাংশনগুলি একক প্রক্রিয়ায়, ক্রমানুসারে (FIFO) ক্রমে সম্পাদিত হয়; এটি ফাংশন ডিবাগিংকে সহজ করে তোলে, যদিও আচরণটি মাল্টি-প্রসেস থেকে আলাদা, ক্লাউডে ফাংশনের সমান্তরাল এক্সিকিউশন।
--export-on-exit= চ্ছিক। প্রমাণীকরণ, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর ব্যবহার করুন। এমুলেটর (গুলি) রপ্তানি ডেটা করার জন্য একটি ডিরেক্টরি যখন হরতাল ঘটে, হিসাবে বর্ণিত নির্দেশ emulators:export কমান্ড। এক্সপোর্ট ডিরেক্টরিটি এই পতাকা দিয়ে চিহ্নিত করা যাবে: firebase emulators:start --export-on-exit=./saved-data । তাহলে --import ব্যবহার করা হয়, রপ্তানি পথ একই ডিফল্ট; উদাহরণস্বরূপ: firebase emulators:start --import=./data-path --export-on-exit । সর্বশেষে, ইচ্ছা হলে, এর বিভিন্ন ডিরেক্টরি পাথ পাস --import এবং --export-on-exit পতাকা।
--import= import_directory চ্ছিক। প্রমাণীকরণ, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর ব্যবহার করুন। আমদানি ডেটা ব্যবহার সংরক্ষণ --export-on-exit প্রারম্ভে বিকল্প বা emulators:export একটি চলমান প্রমাণীকরণ, ক্লাউড Firestore, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর উদাহরণস্বরূপ আদেশ করুন। বর্তমানে এমুলেটর মেমরিতে থাকা যেকোন ডেটা ওভাররাইট করা হবে।
--ui চ্ছিক। চালানোর সময় এমুলেটর UI চালান।

firebase emulators:exec পদ্ধতি সাধারণত একটানা ইন্টিগ্রেশন কর্মপ্রবাহ জন্য আরো উপযুক্ত।

এমুলেটর ডেটা রপ্তানি ও আমদানি করুন

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

emulators: রপ্তানি export_directory

প্রমাণীকরণ, ক্লাউড Firestore, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর। চলমান ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডাটাবেস বা ক্লাউড স্টোরেজ এমুলেটর উদাহরণ থেকে ডেটা রপ্তানি করুন। নিদিষ্ট export_directory এটি ইতিমধ্যেই বিদ্যমান নয় তৈরি করা হবে। যদি নির্দিষ্ট ডিরেক্টরি বিদ্যমান থাকে, তাহলে আপনাকে নিশ্চিত করতে অনুরোধ করা হবে যে পূর্ববর্তী রপ্তানি ডেটা ওভাররাইট করা উচিত। আপনি --force ফ্ল্যাগ ব্যবহার এই প্রম্পট এড়িয়ে যেতে পারেন। এক্সপোর্ট ডিরেক্টরিটি একটি ডাটা ম্যানিফেস্ট ফাইল রয়েছে firebase-export-metadata.json

আপনি স্বয়ংক্রিয়ভাবে যখন তারা ব্যবহার শাটডাউন রপ্তানি ডেটাতে emulators নির্দেশ করতে --export-on-exit উপরে বর্ণিত পতাকা।

আপনার সিআই সিস্টেমের সাথে একীভূত করুন

কন্টেইনারাইজড এমুলেটর স্যুট ইমেজ চলছে

একটি সাধারণ সিআই সেটআপে কনটেইনার সহ এমুলেটর স্যুটটির ইনস্টলেশন এবং কনফিগারেশন সহজবোধ্য।

লক্ষ্য করার জন্য কয়েকটি বিষয় রয়েছে:

  • JAR- র ফাইল ইনস্টল এবং এ ক্যাশে করার ~/.cache/firebase/emulators/

    • আপনি বারবার ডাউনলোড এড়াতে আপনার সিআই ক্যাশে কনফিগারেশনে এই পথটি যুক্ত করতে চাইতে পারেন।
  • আপনি যদি একটি না থাকে তাহলে firebase.json আপনার সংগ্রহস্থলের মধ্যে ফাইল, আপনি একটি কমান্ড লাইন আর্গুমেন্ট যোগ করা আবশ্যক emulators:start বা emulators:exec নির্দিষ্ট করার কমান্ড যা emulators শুরু করা উচিত। উদাহরণ স্বরূপ,
    --only functions,firestore

একটি অথ টোকেন জেনারেট করুন (শুধুমাত্র হোস্টিং এমুলেটর)

আপনার ক্রমাগত ইন্টিগ্রেশন কর্মপ্রবাহ Firebase হোস্টিং উপর নির্ভর করে, তাহলে আপনি চালানোর জন্য একটি টোকেন ব্যবহার করে লগইন করতে হবে firebase emulators:exec । অন্যান্য emulators লগইন প্রয়োজন হয় না।

একটি টোকেন, চালানোর উৎপন্ন করার জন্য firebase login:ci আপনার স্থানীয় পরিবেশের উপর; এটি একটি সিআই সিস্টেম থেকে করা উচিত নয়। প্রমাণীকরণের জন্য নির্দেশাবলী অনুসরণ করুন। প্রতি প্রজেক্টে আপনাকে একবার এই ধাপটি সম্পাদন করতে হবে, যেহেতু টোকেন বিল্ড জুড়ে বৈধ হবে। টোকেনটিকে পাসওয়ার্ডের মতো বিবেচনা করা উচিত; নিশ্চিত করুন যে এটি গোপন রাখা হয়েছে।

আপনার সি আই পরিবেশ আপনি বিভিন্ন পরিবেশের যে বিল্ড স্ক্রিপ্ট ব্যবহার করা যেতে পারে নির্দিষ্ট করার অনুমতি দেবে গেলে, কেবল একটি পরিবেশ পরিবর্তনশীল নামক তৈরি FIREBASE_TOKEN মান স্ট্রিং টোকেন এক্সেস হচ্ছে। Firebase CLI স্বয়ংক্রিয়ভাবে তুলে নেব FIREBASE_TOKEN এনভায়রনমেন্ট ভেরিয়েবল এবং emulators সঠিকভাবে শুরু হবে।

একটি শেষ অবলম্বন হিসাবে, আপনি কেবল আপনার বিল্ড স্ক্রিপ্টে টোকেন অন্তর্ভুক্ত করতে পারেন, কিন্তু নিশ্চিত করুন যে অবিশ্বস্ত দলগুলির অ্যাক্সেস নেই। এই হার্ড কোডেড পদ্ধতির জন্য, আপনি যোগ করতে পারেন --token "YOUR_TOKEN_STRING_HERE" করার firebase emulators:exec কমান্ড।

এমুলেটর হাব REST API ব্যবহার করুন

চলমান emulators তালিকা

বর্তমানে চলমান emulators তালিকাভুক্ত করতে হলে কোনও পাঠাতে GET অনুরোধ /emulators এমুলেটর হাব এর শেষবিন্দু।

curl localhost:4400/emulators

ফলাফলটি একটি JSON বস্তু হবে যা সমস্ত চলমান এমুলেটর এবং তাদের হোস্ট/পোর্ট কনফিগারেশন তালিকাভুক্ত করবে, উদাহরণস্বরূপ:

{
  "hub":{
    "name": "hub",
    "host": "localhost",
    "port": 4400
  },
  "functions": {
    "name": "functions",
    "host": "localhost",
    "port": 5001
  }
  "firestore": {
    "name": "firestore",
    "host": "localhost",
    "port": 8080
  }
}

ব্যাকগ্রাউন্ড ফাংশন ট্রিগার সক্ষম / নিষ্ক্রিয় করুন

কিছু পরিস্থিতিতে আপনাকে স্থানীয় ফাংশন ট্রিগার সাময়িকভাবে অক্ষম করতে হবে। উদাহরণস্বরূপ, আপনি কোনো triggering ছাড়া মেঘ Firestore এমুলেটর ডাটা সব মুছে দিন করতে পারেন onDelete ফাংশন হল ক্লাউড কার্যাবলী এমুলেটর মধ্যে দৌড়াচ্ছে।

সাময়িকভাবে নিষ্ক্রিয় স্থানীয় ফাংশন ট্রিগার করতে, একটি পাঠাতে PUT করার অনুরোধ /functions/disableBackgroundTriggers এমুলেটর হাব এর শেষবিন্দু।

curl -X PUT localhost:4400/functions/disableBackgroundTriggers

ফলাফলটি একটি JSON বস্তু যা বর্তমান অবস্থার বিবরণ দেবে।

{
  "enabled": false
}

স্থানীয় ফাংশন ট্রিগার পরে তারা অক্ষম করা হয়েছে সক্ষম করতে, একটি পাঠাতে PUT করার অনুরোধ /functions/enableBackgroundTriggers এমুলেটর হাব এর শেষবিন্দু।

curl -X PUT localhost:4400/functions/enableBackgroundTriggers

ফলাফলটি একটি JSON বস্তু যা বর্তমান অবস্থার বিবরণ দেবে।

{
  "enabled": true
}

এমুলেটর SDK ইন্টিগ্রেশন

এই বিভাগের টেবিলগুলি নির্দেশ করে যে কোন এমুলেটর ক্লায়েন্ট এবং অ্যাডমিন এসডিকে দ্বারা সমর্থিত। ভবিষ্যত মানে এমুলেটর সমর্থন পরিকল্পিত কিন্তু এখনো পাওয়া যায় না।

ক্লায়েন্ট SDK প্রাপ্যতা

অ্যান্ড্রয়েড আইওএস ওয়েব ফায়ারবেস UI
অ্যান্ড্রয়েড
ফায়ারবেস UI
আইওএস
ফায়ারবেস UI
ওয়েব
রিয়েলটাইম ডাটাবেস 19.4.0 7.2.0 8.0.0 6.4.0 ভবিষ্যত এন/এ
ক্লাউড ফায়ারস্টোর 21.6.0 7.2.0 8.0.0 6.4.0 ভবিষ্যত এন/এ
প্রমাণীকরণ 20.0.0 7.0.0 8.0.0 7.0.0 ভবিষ্যত ভবিষ্যত
মেঘ স্টোরেজ 20.0.0 8.0.0 8.4.0 এন/এ এন/এ এন/এ
ক্লাউড ফাংশন 19.1.0 7.2.0 8.0.0 এন/এ এন/এ এন/এ
হোস্টিং এন/এ এন/এ এন/এ এন/এ এন/এ এন/এ

অ্যাডমিন এসডিকে প্রাপ্যতা

নোড জাভা পাইথন যাওয়া
রিয়েলটাইম ডাটাবেস 8.6.0 6.10.0 2.18.0 ভবিষ্যত
ক্লাউড ফায়ারস্টোর 8.0.0 6.10.0 3.0.0 1.0.0
প্রমাণীকরণ 9.3.0 ভবিষ্যত ভবিষ্যত ভবিষ্যত
মেঘ স্টোরেজ 9.8.0 ভবিষ্যত ভবিষ্যত ভবিষ্যত
ক্লাউড ফাংশন এন/এ এন/এ এন/এ এন/এ
হোস্টিং এন/এ এন/এ এন/এ এন/এ