ফায়ারবেস লোকাল এমুলেটর স্যুট বিভিন্ন প্রোটোটাইপ এবং পরীক্ষার পরিবেশের জন্য ইনস্টল এবং কনফিগার করা যেতে পারে, এক-অফ প্রোটোটাইপিং সেশন থেকে শুরু করে উত্পাদন-স্কেল ক্রমাগত ইন্টিগ্রেশন ওয়ার্কফ্লো পর্যন্ত।
স্থানীয় এমুলেটর স্যুট ইনস্টল করুন
এমুলেটর স্যুট ইনস্টল করার আগে আপনার প্রয়োজন হবে:
এমুলেটর স্যুট ইনস্টল করতে:
- Firebase CLI ইনস্টল করুন। আপনার যদি আগে থেকেই Firebase CLI ইনস্টল না থাকে, তাহলে এখনই ইনস্টল করুন । এমুলেটর স্যুট ব্যবহার করার জন্য আপনার CLI সংস্করণ 8.14.0 বা উচ্চতর প্রয়োজন হবে। আপনি নিম্নলিখিত কমান্ড ব্যবহার করে কোন সংস্করণ ইনস্টল করেছেন তা পরীক্ষা করতে পারেন:
firebase --version
- আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে কোন পণ্য ব্যবহার করতে হবে তা নির্দিষ্ট করার জন্য অনস্ক্রিন প্রম্পট অনুসরণ করে একটি ফায়ারবেস প্রকল্প হিসাবে বর্তমান কার্যকারী ডিরেক্টরি শুরু করুন:
firebase init
- এমুলেটর স্যুট সেট আপ করুন। এই কমান্ডটি একটি কনফিগারেশন উইজার্ড শুরু করে যা আপনাকে আগ্রহের এমুলেটর নির্বাচন করতে, সংশ্লিষ্ট এমুলেটর বাইনারি ফাইলগুলি ডাউনলোড করতে এবং ডিফল্টগুলি উপযুক্ত না হলে এমুলেটর পোর্ট সেট করতে দেয়।
firebase init emulators
একবার একটি এমুলেটর ইনস্টল হয়ে গেলে, কোনো আপডেট চেক করা হয় না এবং আপনি আপনার Firebase CLI সংস্করণ আপডেট না করা পর্যন্ত কোনো অতিরিক্ত স্বয়ংক্রিয় ডাউনলোড ঘটবে না।
এমুলেটর স্যুট কনফিগার করুন
আপনি ঐচ্ছিকভাবে এমুলেটরদের নেটওয়ার্ক পোর্ট কনফিগার করতে পারেন এবং firebase.json
ফাইলে নিরাপত্তা নিয়মের সংজ্ঞার পথ দেখতে পারেন:
-
firebase init emulators
চালানোর মাধ্যমে অথবা ম্যানুয়ালিfirebase.json
সম্পাদনা করে এমুলেটর পোর্ট পরিবর্তন করুন। - ম্যানুয়ালি
firebase.json
সম্পাদনা করে নিরাপত্তা নিয়মের সংজ্ঞার পথ পরিবর্তন করুন।
আপনি যদি এই সেটিংসগুলি কনফিগার না করেন, তাহলে এমুলেটরগুলি তাদের ডিফল্ট পোর্টে শুনবে এবং ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস এবং ক্লাউড স্টোরেজ এমুলেটরগুলি ওপেন ডেটা নিরাপত্তার সাথে চলবে৷
আদেশ | বর্ণনা |
---|---|
init এমুলেটর | একটি এমুলেটর ইনিশিয়ালাইজেশন উইজার্ড শুরু করুন। ইনস্টল করা ইমুলেটর সনাক্ত করুন এবং ঐচ্ছিকভাবে এমুলেটর পোর্ট সেটিংস নির্দিষ্ট করুন। init emulators অ-ধ্বংসাত্মক; ডিফল্ট গ্রহণ করা বর্তমান এমুলেটর কনফিগারেশন সংরক্ষণ করবে। |
পোর্ট কনফিগারেশন
প্রতিটি এমুলেটর একটি পছন্দের ডিফল্ট মান সহ আপনার মেশিনে একটি ভিন্ন পোর্টে আবদ্ধ হয়।
এমুলেটর | ডিফল্ট পোর্ট |
---|---|
প্রমাণীকরণ | 9099 |
এমুলেটর স্যুট UI | 4000 |
ক্লাউড ফাংশন | 5001 |
রিয়েলটাইম ডাটাবেস | 9000 |
ক্লাউড ফায়ারস্টোর | 8080 |
মেঘ স্টোরেজ | 9199 |
ফায়ারবেস হোস্টিং | 5000 |
পাব/সাব | 8085 |
নিরাপত্তা নিয়ম কনফিগারেশন
firebase.json
এ database
, firestore
এবং storage
কনফিগারেশন কী থেকে নিরাপত্তা নিয়ম কনফিগারেশন নেবে।
{
// 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"
}
}
}
জাভা বিকল্পগুলি নির্দিষ্ট করা
রিয়েলটাইম ডেটাবেস এমুলেটর, ক্লাউড ফায়ারস্টোর এমুলেটর, এবং ক্লাউড স্টোরেজ এমুলেটরের অংশ জাভা ভিত্তিক, যা পরিবেশ পরিবর্তনশীল JAVA_TOOL_OPTIONS
এর মাধ্যমে JVM পতাকাগুলির সাথে কাস্টমাইজ করা যেতে পারে।
উদাহরণস্বরূপ, আপনি যদি জাভা হিপ স্পেস সম্পর্কিত ত্রুটিগুলি অনুভব করেন, আপনি সর্বোচ্চ জাভা হিপের আকার 4GB পর্যন্ত বাড়িয়ে দিতে পারেন:
export JAVA_TOOL_OPTIONS="-Xmx4g"
firebase emulators:start
JAVA_TOOL_OPTIONS="-Xms2g -Xmx4g"
মতো স্পেস দ্বারা পৃথক করা উদ্ধৃতিতে একাধিক পতাকা নির্দিষ্ট করা যেতে পারে। ফ্ল্যাগগুলি শুধুমাত্র এমুলেটরগুলির জাভা-ভিত্তিক উপাদানগুলিকে প্রভাবিত করে এবং ফায়ারবেস CLI-এর অন্যান্য অংশগুলিতে যেমন এমুলেটর স্যুট UI এর উপর কোন প্রভাব নেই৷
এমুলেটর শুরু করুন
আপনি ম্যানুয়ালি বন্ধ না হওয়া পর্যন্ত চালানোর জন্য এমুলেটরগুলি শুরু করতে পারেন, বা একটি মনোনীত পরীক্ষার স্ক্রিপ্টের সময়কালের জন্য চালানোর জন্য তারপর স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যেতে পারেন।
আদেশ | বর্ণনা | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
এমুলেটর: শুরু | firebase.json এ কনফিগার করা Firebase পণ্যগুলির জন্য এমুলেটর শুরু করুন। স্পষ্টভাবে বন্ধ না হওয়া পর্যন্ত এমুলেটর প্রক্রিয়া চলতে থাকবে। কলিং emulators:start ইমুলেটরগুলিকে ~/.cache/firebase/emulators/ এ ডাউনলোড করবে যদি সেগুলি ইতিমধ্যে ইনস্টল না থাকে।
| ||||||||||||
এমুলেটর: exec scriptpath | scriptpath এ কনফিগার করা firebase.json পণ্যগুলির জন্য এমুলেটরগুলি শুরু করার পরে স্ক্রিপ্টপাথে স্ক্রিপ্টটি চালান। স্ক্রিপ্ট চালানো শেষ হলে এমুলেটর প্রক্রিয়াগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।
|
firebase emulators:exec
পদ্ধতিটি সাধারনত ক্রমাগত ইন্টিগ্রেশন ওয়ার্কফ্লোগুলির জন্য আরও উপযুক্ত।
এমুলেটর ডেটা রপ্তানি এবং আমদানি করুন
আপনি একটি শেয়ারযোগ্য, সাধারণ বেসলাইন ডেটা সেট হিসাবে ব্যবহার করার জন্য প্রমাণীকরণ, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস এবং ক্লাউড স্টোরেজ এমুলেটর থেকে ডেটা রপ্তানি করতে পারেন। এই ডেটা সেটগুলি উপরে বর্ণিত হিসাবে --import
পতাকা ব্যবহার করে আমদানি করা যেতে পারে।
এমুলেটর: এক্সপোর্ট export_directory | প্রমাণীকরণ, ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস বা ক্লাউড স্টোরেজ এমুলেটর । চলমান ক্লাউড ফায়ারস্টোর, রিয়েলটাইম ডেটাবেস বা ক্লাউড স্টোরেজ এমুলেটর উদাহরণ থেকে ডেটা রপ্তানি করুন। নির্দিষ্ট উপরে বর্ণিত |
আপনার সিআই সিস্টেমের সাথে একীভূত করুন
কনটেইনারাইজড এমুলেটর স্যুট ছবি চলছে
একটি সাধারণ CI সেটআপে কন্টেইনার সহ এমুলেটর স্যুটের ইনস্টলেশন এবং কনফিগারেশন সহজবোধ্য।
উল্লেখ্য কয়েকটি সমস্যা আছে:
JAR ফাইল
~/.cache/firebase/emulators/
এ ইনস্টল এবং ক্যাশে করা হয়।- আপনি বারবার ডাউনলোড এড়াতে আপনার CI ক্যাশে কনফিগারেশনে এই পথটি যোগ করতে চাইতে পারেন।
আপনার সংগ্রহস্থলে একটি
firebase.json
ফাইল না থাকলে, কোন এমুলেটরগুলি শুরু করা উচিত তা নির্দিষ্ট করতে আপনাকেemulators:start
বাemulators:exec
কমান্ডে একটি কমান্ড লাইন আর্গুমেন্ট যোগ করতে হবে। উদাহরণ স্বরূপ,
--only functions,firestore
।
একটি প্রমাণীকরণ টোকেন তৈরি করুন (শুধু হোস্টিং এমুলেটর)
যদি আপনার ক্রমাগত ইন্টিগ্রেশন ওয়ার্কফ্লোগুলি Firebase হোস্টিং-এর উপর নির্ভর করে, তাহলে Firebase firebase emulators:exec
চালানোর জন্য আপনাকে একটি টোকেন ব্যবহার করে লগইন করতে হবে। অন্যান্য এমুলেটরগুলির লগইন প্রয়োজন হয় না।
একটি টোকেন তৈরি করতে, আপনার স্থানীয় পরিবেশে firebase login:ci
চালান; এটি একটি CI সিস্টেম থেকে সঞ্চালিত করা উচিত নয়। প্রমাণীকরণ নির্দেশাবলী অনুসরণ করুন. প্রতি প্রোজেক্টে আপনাকে একবার এই ধাপটি সম্পাদন করতে হবে, যেহেতু টোকেনটি বিল্ড জুড়ে বৈধ হবে। টোকেনটিকে একটি পাসওয়ার্ডের মতো বিবেচনা করা উচিত; এটা গোপন রাখা হয় তা নিশ্চিত করুন।
যদি আপনার CI এনভায়রনমেন্ট আপনাকে এনভায়রনমেন্ট ভেরিয়েবল নির্দিষ্ট করতে দেয় যা বিল্ড স্ক্রিপ্টে ব্যবহার করা যেতে পারে, তাহলে FIREBASE_TOKEN
নামে একটি এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন, যার মানটি হল অ্যাক্সেস টোকেন স্ট্রিং। Firebase CLI স্বয়ংক্রিয়ভাবে FIREBASE_TOKEN
এনভায়রনমেন্ট ভেরিয়েবল বাছাই করবে এবং এমুলেটরগুলি সঠিকভাবে শুরু হবে।
একটি শেষ অবলম্বন হিসাবে, আপনি কেবল আপনার বিল্ড স্ক্রিপ্টে টোকেন অন্তর্ভুক্ত করতে পারেন, তবে নিশ্চিত করুন যে অবিশ্বস্ত দলগুলির অ্যাক্সেস নেই৷ এই হার্ড-কোডেড পদ্ধতির জন্য, আপনি Firebase firebase emulators:exec
কমান্ডে --token "YOUR_TOKEN_STRING_HERE"
যোগ করতে পারেন।
এমুলেটর হাব REST API ব্যবহার করুন
চলমান এমুলেটর তালিকা করুন
বর্তমানে চলমান এমুলেটরদের তালিকা করতে, এমুলেটর হাবের /emulators
এন্ডপয়েন্টে একটি GET
অনুরোধ পাঠান।
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
}
}
ব্যাকগ্রাউন্ড ফাংশন ট্রিগার সক্রিয়/অক্ষম করুন
কিছু পরিস্থিতিতে আপনাকে অস্থায়ীভাবে স্থানীয় ফাংশন এবং এক্সটেনশন ট্রিগার অক্ষম করতে হবে। উদাহরণস্বরূপ, আপনি ক্লাউড ফাংশন বা এক্সটেনশন এমুলেটরগুলিতে চলমান কোনো onDelete
ফাংশন ট্রিগার না করে ক্লাউড ফায়ারস্টোর এমুলেটরের সমস্ত ডেটা মুছতে চাইতে পারেন।
স্থানীয় ফাংশন ট্রিগারগুলিকে সাময়িকভাবে নিষ্ক্রিয় করতে, এমুলেটর হাবের /functions/disableBackgroundTriggers
এন্ডপয়েন্টে একটি PUT
অনুরোধ পাঠান।
curl -X PUT localhost:4400/functions/disableBackgroundTriggers
ফলাফল বর্তমান অবস্থা বিশদ বিবরণ একটি JSON বস্তু হবে.
{
"enabled": false
}
স্থানীয় ফাংশন ট্রিগারগুলি নিষ্ক্রিয় করার পরে সক্ষম করতে, এমুলেটর হাবের /functions/enableBackgroundTriggers
এন্ডপয়েন্টে একটি PUT
অনুরোধ পাঠান।
curl -X PUT localhost:4400/functions/enableBackgroundTriggers
ফলাফল বর্তমান অবস্থা বিশদ বিবরণ একটি JSON বস্তু হবে.
{
"enabled": true
}
এমুলেটর SDK ইন্টিগ্রেশন
এই বিভাগের টেবিলগুলি নির্দেশ করে যে কোন এমুলেটরগুলি ক্লায়েন্ট এবং অ্যাডমিন SDK দ্বারা সমর্থিত। ভবিষ্যত মানে এমুলেটর সমর্থন পরিকল্পনা করা হয়েছে কিন্তু এখনও উপলব্ধ নয়।
ক্লায়েন্ট SDK প্রাপ্যতা
অ্যান্ড্রয়েড | অ্যাপল প্ল্যাটফর্ম | ওয়েব | ফায়ারবেস UI অ্যান্ড্রয়েড | ফায়ারবেস UI iOS | ফায়ারবেস UI ওয়েব | |
---|---|---|---|---|---|---|
রিয়েলটাইম ডাটাবেস | 19.4.0 | 7.2.0 | ৮.০.০ | 6.4.0 | ভবিষ্যৎ | N/A |
ক্লাউড ফায়ারস্টোর | 21.6.0 | 7.2.0 | ৮.০.০ | 6.4.0 | ভবিষ্যৎ | N/A |
প্রমাণীকরণ | 20.0.0 | 7.0.0 | ৮.০.০ | 7.0.0 | ভবিষ্যৎ | ভবিষ্যৎ |
মেঘ স্টোরেজ | 20.0.0 | ৮.০.০ | 8.4.0 | N/A | N/A | N/A |
ক্লাউড ফাংশন | 19.1.0 | 7.2.0 | ৮.০.০ | N/A | N/A | N/A |
হোস্টিং | N/A | N/A | N/A | N/A | N/A | N/A |
এক্সটেনশন | N/A | N/A | N/A | N/A | N/A | N/A |
অ্যাডমিন SDK উপলব্ধতা
নোড | জাভা | পাইথন | যাওয়া | |
---|---|---|---|---|
রিয়েলটাইম ডাটাবেস | ৮.৬.০ | 6.10.0 | 2.18.0 | ভবিষ্যৎ |
ক্লাউড ফায়ারস্টোর | ৮.০.০ | 6.10.0 | 3.0.0 | 1.0.0 |
প্রমাণীকরণ | 9.3.0 | 7.2.0 | 5.0.0 | 4.2.0 |
মেঘ স্টোরেজ | 9.8.0 | ভবিষ্যৎ | ভবিষ্যৎ | ভবিষ্যৎ |
ক্লাউড ফাংশন | N/A | N/A | N/A | N/A |
হোস্টিং | N/A | N/A | N/A | N/A |
এক্সটেনশন | N/A | N/A | N/A | N/A |