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

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

লোকাল এমুলেটর স্যুট ইনস্টল করুন

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

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

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

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

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

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

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

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

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

কমান্ড বর্ণনা
init অনুকরণকারী একটি এমুলেটর সূচনা উইজার্ড শুরু করুন। ইনস্টল করার জন্য এমুলেটরগুলি সনাক্ত করুন এবং allyচ্ছিকভাবে এমুলেটর পোর্ট সেটিংস নির্দিষ্ট করুন। 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"
    }
  }
}

অনুকরণকারী শুরু করুন

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

কমান্ড বর্ণনা
অনুকরণকারী: শুরু কনফিগার 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 .চ্ছিক। কার্যকর করার সময় এমুলেটর ইউআই চালান।

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

এমুলেটর ডেটা রফতানি এবং আমদানি করুন

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

emulators: রপ্তানি export_directory

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

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

আপনার সিআই সিস্টেমের সাথে সংহত করুন

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

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

এখানে কয়েকটি বিষয় লক্ষণীয়:

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

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

একটি লেখক টোকেন উত্পন্ন করুন (কেবল হোস্টিং এমুলেটর)

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

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

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

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

এমুলেটর হাব REST এপিআই ব্যবহার করুন

চলমান অনুকরণকারীদের তালিকা করুন

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

curl localhost:4400/emulators

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

{
  "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

ফলাফলটি বর্তমান রাষ্ট্রের বিবরণ দিয়ে একটি জেএসএন বস্তু হবে।

{
  "enabled": false
}

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

curl -X PUT localhost:4400/functions/enableBackgroundTriggers

ফলাফলটি বর্তমান রাষ্ট্রের বিবরণ দিয়ে একটি জেএসএন বস্তু হবে।

{
  "enabled": true
}

এমুলেটর এসডিকে সংহতকরণ

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

ক্লায়েন্ট এসডিকে উপলভ্যতা

অ্যান্ড্রয়েড আইওএস ওয়েব ফায়ারবেস ইউআই
অ্যান্ড্রয়েড
ফায়ারবেস ইউআই
আইওএস
ফায়ারবেস ইউআই
ওয়েব
রিয়েলটাইম ডাটাবেস 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 ভবিষ্যত ভবিষ্যত ভবিষ্যত
মেঘ ফাংশন এন / এ এন / এ এন / এ এন / এ
হোস্টিং এন / এ এন / এ এন / এ এন / এ