ফায়ারবেস স্থানীয় এমুলেটর স্যুটটি বিভিন্ন প্রোটোটাইপ এবং পরীক্ষার পরিবেশের জন্য ইনস্টল এবং কনফিগার করা যেতে পারে, এক-অফ প্রোটোটাইপিং সেশন থেকে শুরু করে উত্পাদন-স্কেল অবিচ্ছিন্ন ইন্টিগ্রেশন ওয়ার্কফ্লো পর্যন্ত যে কোনও কিছু।
স্থানীয় এমুলেটর স্যুট ইনস্টল করুন
এমুলেটর স্যুট ইনস্টল করার আগে আপনার প্রয়োজন হবে:
এমুলেটর স্যুট ইনস্টল করতে:
- Firebase CLI ইনস্টল করুন। আপনার যদি ইতিমধ্যে ফায়ারবেস সিএলআই ইনস্টল না করে থাকে তবে এখনই এটি ইনস্টল করুন । এমুলেটর স্যুটটি ব্যবহার করতে আপনার সিএলআই সংস্করণ 8.14.0 বা তার বেশি প্রয়োজন। নিম্নলিখিত কমান্ডটি ব্যবহার করে আপনি কোন সংস্করণটি ইনস্টল করেছেন তা পরীক্ষা করতে পারেন:
firebase --version
- আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে অনস্ক্রিনটি কোন পণ্যগুলি ব্যবহার করবেন তা নির্দিষ্ট করার জন্য অনুরোধ করে ফায়ারবেস প্রকল্প হিসাবে বর্তমান ওয়ার্কিং ডিরেক্টরিটি আরম্ভ করুন:
firebase init
- এমুলেটর স্যুট সেট আপ করুন। এই কমান্ডটি একটি কনফিগারেশন উইজার্ড শুরু করে যা আপনাকে আগ্রহের এমুলেটরগুলি নির্বাচন করতে, সংশ্লিষ্ট এমুলেটর বাইনারি ফাইলগুলি ডাউনলোড করতে এবং ডিফল্টগুলি উপযুক্ত না হলে এমুলেটর পোর্টগুলি সেট করতে দেয়।
firebase init emulators
একবার কোনও এমুলেটর ইনস্টল হয়ে গেলে, কোনও আপডেট চেক করা হয় না এবং আপনি আপনার ফায়ারবেস সিএলআই সংস্করণ আপডেট না করা পর্যন্ত কোনও অতিরিক্ত স্বয়ংক্রিয় ডাউনলোডগুলি ঘটবে না।
Configure Emulator Suite
আপনি ঐচ্ছিকভাবে এমুলেটরদের নেটওয়ার্ক পোর্ট কনফিগার করতে পারেন এবং firebase.json
ফাইলে নিরাপত্তা নিয়মের সংজ্ঞার পথ দেখতে পারেন:
-
firebase init emulators
চালানোর মাধ্যমে অথবা ম্যানুয়ালিfirebase.json
সম্পাদনা করে এমুলেটর পোর্ট পরিবর্তন করুন। - Change the path to Security Rules definitions by editing
firebase.json
manually.
আপনি যদি এই সেটিংসটি কনফিগার না করেন তবে এমুলেটররা তাদের ডিফল্ট পোর্টগুলিতে শুনবে এবং ফায়ারবেস এমুলেটরগুলির জন্য Cloud Firestore , Realtime Database এবং Cloud Storage for Firebase খোলা ডেটা সুরক্ষার সাথে চলবে।
আদেশ | বর্ণনা |
---|---|
init এমুলেটর | একটি এমুলেটর ইনিশিয়ালাইজেশন উইজার্ড শুরু করুন। Identify emulators to be installed and optionally specify emulator port settings. init emulators অ-ধ্বংসাত্মক; ডিফল্ট গ্রহণ করা বর্তমান এমুলেটর কনফিগারেশন সংরক্ষণ করবে। |
পোর্ট কনফিগারেশন
Each emulator binds to a different port on your machine with a preferred default value.
এমুলেটর | ডিফল্ট পোর্ট |
---|---|
Authentication | 9099 |
Emulator Suite UI | 4000 |
Cloud Functions | 5001 |
ইভেন্টর্ক | 9299 |
Realtime Database | 9000 |
Cloud Firestore | 8080 |
Cloud Storage for Firebase | 9199 |
Firebase Hosting | 5000 |
Pub/Sub | 8085 |
প্রকল্প আইডি কনফিগারেশন
আপনি কীভাবে এমুলেটরগুলি ব্যবহার করেন তার উপর নির্ভর করে, আপনি বিভিন্ন ফায়ারবেস প্রকল্প আইডি ব্যবহার করে একটি এমুলেটরের একাধিক দৃষ্টান্ত বা প্রদত্ত প্রকল্প আইডির জন্য একাধিক এমুলেটর দৃষ্টান্ত চালাতে পারেন। In such cases, emulator instances are running in a separate environment.
সব এমুলেটর আহ্বানের জন্য একটি প্রজেক্ট আইডি সেট করা সাধারণত একটি ভাল অভ্যাস, তাই Emulator Suite UI , বিভিন্ন পণ্য এমুলেটর এবং একটি নির্দিষ্ট এমুলেটরের সমস্ত চলমান উদাহরণ সব ক্ষেত্রেই সঠিকভাবে যোগাযোগ করতে পারে।
Local Emulator Suite সতর্কতা জারি করে যখন এটি পরিবেশে একাধিক প্রোজেক্ট আইডি সনাক্ত করে, যদিও আপনি আপনার firebase.json
এ singleProjectMode
কীটিকে false
সেট করে এই আচরণটিকে ওভাররাইড করতে পারেন।
You can check project ID declaration(s) for mismatches in:
- কমান্ড লাইনে ডিফল্ট প্রকল্প। By default, the project ID will be taken on startup from the project selected with
firebase init
orfirebase use
. To view the list of projects (and see which one is selected) usefirebase projects:list
. - Rules unit tests. প্রজেক্ট আইডি প্রায়ই নিয়ম ইউনিট টেস্টিং লাইব্রেরি পদ্ধতি
initializeTestEnvironment
বাinitializeTestApp
এর কলগুলিতে নির্দিষ্ট করা হয়। - কমান্ড লাইন
--project
পতাকা। Firebase সিএলআই পাস করা--project
পতাকা ডিফল্ট প্রকল্পটিকে ওভাররাইড করে। ইউনিট পরীক্ষা এবং অ্যাপ ইনিশিয়ালাইজেশনে আপনাকে পতাকার মান প্রজেক্ট আইডির সাথে মেলে তা নিশ্চিত করতে হবে।
আপনার অ্যাপল প্ল্যাটফর্ম , অ্যান্ড্রয়েড এবং ওয়েব প্রকল্পগুলি কনফিগার করার সময় আপনি সেট করা প্ল্যাটফর্ম-নির্দিষ্ট প্রজেক্ট আইডি কনফিগারেশনগুলিও পরীক্ষা করুন।
সুরক্ষা বিধি কনফিগারেশন
The emulators will take Security Rules configuration from the database
, firestore
and storage
configuration keys in 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": {
"singleProjectMode": false, // do not warn on detection of multiple project IDs
"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"
}
}
}
Specifying Java options
Realtime Database এমুলেটর, Cloud Firestore এমুলেটর এবং Cloud Storage for Firebase কিছু অংশ জাভা ভিত্তিক, যা পরিবেশের ভেরিয়েবল JAVA_TOOL_OPTIONS
এর মাধ্যমে জেভিএম পতাকা দিয়ে কাস্টমাইজ করা যায়।
For example, if you experience Java heap space related errors, you may increase the maximum Java heap size to 4GB:
export JAVA_TOOL_OPTIONS="-Xmx4g"
firebase emulators:start
JAVA_TOOL_OPTIONS="-Xms2g -Xmx4g"
এর মতো স্পেস দ্বারা পৃথক করা উদ্ধৃতিতে একাধিক পতাকা নির্দিষ্ট করা যেতে পারে। ফ্ল্যাগগুলি শুধুমাত্র ইমুলেটরগুলির জাভা-ভিত্তিক উপাদানগুলিকে প্রভাবিত করে এবং Firebase CLI-এর অন্যান্য অংশগুলিতে যেমন Emulator Suite UI উপর কোন প্রভাব নেই।
এমুলেটর শুরু করুন
আপনি ম্যানুয়ালি বন্ধ না হওয়া পর্যন্ত চালানোর জন্য এমুলেটরগুলি শুরু করতে পারেন, বা একটি মনোনীত পরীক্ষার স্ক্রিপ্টের সময়কালের জন্য চালানোর জন্য তারপর স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যেতে পারেন।
আদেশ | বর্ণনা | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
এমুলেটর: শুরু | firebase.json এ কনফিগার করা Firebase পণ্যগুলির জন্য এমুলেটর শুরু করুন। স্পষ্টভাবে বন্ধ না হওয়া পর্যন্ত এমুলেটর প্রক্রিয়া চলতে থাকবে। Calling emulators:start will download the emulators to ~/.cache/firebase/emulators/ if they are not already installed.
| ||||||||||||
এমুলেটর: exec scriptpath | firebase.json এ কনফিগার করা ফায়ারবেস পণ্যগুলির জন্য এমুলেটরগুলি শুরু করার পরে scriptpath স্ক্রিপ্টটি চালান। স্ক্রিপ্টটি চলমান শেষ হয়ে গেলে এমুলেটর প্রক্রিয়াগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।
|
firebase emulators:exec
পদ্ধতিটি অবিচ্ছিন্ন ইন্টিগ্রেশন ওয়ার্কফ্লোগুলির জন্য সাধারণত আরও উপযুক্ত।
এমুলেটর ডেটা রফতানি এবং আমদানি করুন
আপনি শেয়ারযোগ্য, সাধারণ বেসলাইন ডেটা সেট হিসাবে ব্যবহার করার জন্য Cloud Storage for Firebase Authentication , Cloud Firestore , Realtime Database এবং ক্লাউড স্টোরেজ থেকে ডেটা রপ্তানি করতে পারেন। These data sets can be imported using the --import
flag, as described above.
এমুলেটর: রফতানি export_directory | Authentication , Cloud Firestore , Realtime Database বা Cloud Storage for Firebase । একটি চলমান Cloud Firestore , Realtime Database বা Cloud Storage for Firebase থেকে ডেটা রপ্তানি করুন। The specified উপরে বর্ণিত |
আপনার সিআই সিস্টেমের সাথে একীভূত করুন
চলমান কনটেইনারাইজ এমুলেটর স্যুট ইমেজ
একটি সাধারণ সিআই সেটআপে পাত্রে সহ এমুলেটর স্যুটটির ইনস্টলেশন এবং কনফিগারেশন সোজা।
উল্লেখ্য কয়েকটি সমস্যা আছে:
JAR files are installed and cached at
~/.cache/firebase/emulators/
.- You may want to add this path to your CI cache configuration to avoid repeated downloads.
আপনার সংগ্রহস্থলে একটি
firebase.json
ফাইল না থাকলে, কোন এমুলেটরগুলি শুরু করা উচিত তা নির্দিষ্ট করতে আপনাকেemulators:start
বাemulators:exec
কমান্ডে একটি কমান্ড লাইন আর্গুমেন্ট যোগ করতে হবে। যেমন,
--only functions,firestore
।
Generate an auth token (Hosting emulator only)
যদি আপনার ক্রমাগত ইন্টিগ্রেশন ওয়ার্কফ্লোগুলি Firebase Hosting এর উপর নির্ভর করে, তাহলে firebase emulators:exec
চালানোর জন্য আপনাকে একটি টোকেন ব্যবহার করে লগ ইন করতে হবে। অন্যান্য এমুলেটরদের লগইন প্রয়োজন হয় না।
একটি টোকেন তৈরি করতে, আপনার স্থানীয় পরিবেশে firebase login:ci
চালান; এটি কোনও সিআই সিস্টেম থেকে করা উচিত নয়। Follow instructions to authenticate. আপনার কেবলমাত্র এই পদক্ষেপে একবারে এই পদক্ষেপটি সম্পাদন করা উচিত, যেহেতু টোকেনটি বিল্ডগুলিতে বৈধ হবে। টোকেনটিকে একটি পাসওয়ার্ডের মতো বিবেচনা করা উচিত; নিশ্চিত করুন যে এটি গোপন রাখা হয়েছে।
যদি আপনার CI এনভায়রনমেন্ট আপনাকে এনভায়রনমেন্ট ভেরিয়েবল নির্দিষ্ট করতে দেয় যা বিল্ড স্ক্রিপ্টে ব্যবহার করা যেতে পারে, তাহলে FIREBASE_TOKEN
নামে একটি এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন, যার মানটি হল অ্যাক্সেস টোকেন স্ট্রিং। The Firebase CLI will automatically pick up the FIREBASE_TOKEN
environment variable and the emulators will start properly.
As a last resort, you can simply include the token in your build script, but make sure that untrusted parties do not have access. For this hard-coded approach, you can add --token "YOUR_TOKEN_STRING_HERE"
to the firebase emulators:exec
command.
এমুলেটর হাব REST API ব্যবহার করুন
List running emulators
To list the currently running emulators, send a GET
request to the /emulators
endpoint of the Emulator Hub.
curl localhost:4400/emulators
The result will be a JSON object listing all running emulators and their host/port configuration, for example:
{
"hub":{
"name": "hub",
"host": "localhost",
"port": 4400
},
"functions": {
"name": "functions",
"host": "localhost",
"port": 5001
}
"firestore": {
"name": "firestore",
"host": "localhost",
"port": 8080
}
}
ব্যাকগ্রাউন্ড ফাংশন ট্রিগার সক্রিয়/অক্ষম করুন
কিছু পরিস্থিতিতে আপনাকে অস্থায়ীভাবে স্থানীয় ফাংশন এবং এক্সটেনশন ট্রিগারগুলি অক্ষম করতে হবে। উদাহরণস্বরূপ আপনি Cloud Firestore এমুলেটরে সমস্ত ডেটা মুছতে চাইতে পারেন যে Cloud Functions বা Extensions এমুলেটরগুলিতে চলমান কোনও onDelete
ফাংশনগুলি ট্রিগার না করে।
অস্থায়ীভাবে স্থানীয় ফাংশন ট্রিগারগুলি অক্ষম করতে, এমুলেটর হাবের /functions/disableBackgroundTriggers
শেষ পয়েন্টে একটি PUT
অনুরোধ প্রেরণ করুন।
curl -X PUT localhost:4400/functions/disableBackgroundTriggers
ফলাফল বর্তমান অবস্থা বিশদ বিবরণ একটি JSON বস্তু হবে.
{
"enabled": false
}
স্থানীয় ফাংশন ট্রিগারগুলি নিষ্ক্রিয় করার পরে সক্ষম করতে, এমুলেটর হাবের /functions/enableBackgroundTriggers
এন্ডপয়েন্টে একটি PUT
অনুরোধ পাঠান।
curl -X PUT localhost:4400/functions/enableBackgroundTriggers
ফলাফলটি বর্তমান অবস্থার বিবরণ দিয়ে একটি জেএসএন অবজেক্ট হবে।
{
"enabled": true
}
এমুলেটর এসডিকে সংহতকরণ
The tables in this section indicate which emulators are supported by client and Admin SDKs. Future means emulator support is planned but not yet available.
Client SDK availability
অ্যান্ড্রয়েড | Apple platforms | ওয়েব | ফায়ারবেস UI অ্যান্ড্রয়েড | ফায়ারবেস UI iOS | ফায়ারবেস UI ওয়েব | |
---|---|---|---|---|---|---|
Realtime Database | 19.4.0 | 7.2.0 | 8.0.0 | 6.4.0 | ভবিষ্যৎ | N/A |
Cloud Firestore | 21.6.0 | 7.2.0 | 8.0.0 | 6.4.0 | ভবিষ্যৎ | N/A |
Authentication | 20.0.0 | 7.0.0 | 8.0.0 | 7.0.0 | ভবিষ্যৎ | 4.7.2 |
Cloud Storage for Firebase | 20.0.0 | 8.0.0 | 8.4.0 | 7.0.0 | 11.0.0 | N/A |
Cloud Functions | 19.1.0 | 7.2.0 | 8.0.0 | N/A | N/A | N/A |
Hosting | N/A | N/A | N/A | N/A | N/A | N/A |
Extensions | N/A | N/A | N/A | N/A | N/A | N/A |
Admin SDK availability
নোড | জাভা | পাইথন | যাও | |
---|---|---|---|---|
Realtime Database | 8.6.0 | 6.10.0 | 2.18.0 | ভবিষ্যৎ |
Cloud Firestore | 8.0.0 | 6.10.0 | 3.0.0 | 1.0.0 |
Authentication | 9.3.0 | 7.2.0 | 5.0.0 | 4.2.0 |
Cloud Storage for Firebase | 9.8.0 | ভবিষ্যৎ | ভবিষ্যৎ | ভবিষ্যৎ |
Cloud Functions | N/A | N/A | N/A | N/A |
Hosting | N/A | N/A | N/A | N/A |
Extensions | N/A | N/A | N/A | N/A |