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

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

একটি ফায়ারবেস প্রকল্প বেছে নিন

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

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

স্থানীয় এমুলেটর স্যুট বাস্তব ফায়ারবেস প্রকল্প এবং ডেমো প্রকল্পের অনুকরণ সমর্থন করে।

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

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

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

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

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

ডেমো

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

ডেমো প্রজেক্টের জন্য প্রজেক্ট demo- ডেমো-প্রিফিক্স থাকে।

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

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

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

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

অ্যান্ড্রয়েড, অ্যাপল প্ল্যাটফর্ম এবং ওয়েব এসডিকে

নিম্নরূপ ক্লাউড স্টোরেজ এমুলেটরের সাথে ইন্টারঅ্যাক্ট করতে আপনার ইন-অ্যাপ কনফিগারেশন বা পরীক্ষা ক্লাস সেট আপ করুন।

অ্যান্ড্রয়েড
FirebaseStorage.getInstance().useEmulator('10.0.2.2', 9199);
সুইফট
Storage.storage().useEmulator(withHost:"localhost", port:9199)
ওয়েব v8
var storage = firebase.storage();
storage.useEmulator("localhost", 9199);
ওয়েব v9
import { getStorage, connectStorageEmulator } from "firebase/storage";

const storage = getStorage();
connectStorageEmulator(storage, "localhost", 9199);

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

অ্যাডমিন SDK

যখন FIREBASE_STORAGE_EMULATOR_HOST এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকে তখন Firebase অ্যাডমিন SDKগুলি স্বয়ংক্রিয়ভাবে ক্লাউড স্টোরেজ এমুলেটরের সাথে সংযুক্ত হয়:

export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"

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

আপনি যদি চান আপনার অ্যাডমিন SDK কোডটি অন্য পরিবেশে চলমান একটি শেয়ার্ড এমুলেটরের সাথে সংযোগ করতে, তাহলে আপনাকে Firebase CLI ব্যবহার করে সেট করা একই প্রকল্প আইডি নির্দিষ্ট করতে হবে। আপনি সরাসরি GCLOUD_PROJECT initializeApp পরিবর্তনশীল সেট করতে পারেন।

Node.js অ্যাডমিন SDK
admin.initializeApp({ projectId: "your-project-id" });
পরিবেশ সূচক
export GCLOUD_PROJECT="your-project-id"

আমদানি এবং রপ্তানি তথ্য

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

firebase emulators:export ./dir

পরীক্ষায়, এমুলেটর স্টার্টআপে, বেসলাইন ডেটা আমদানি করুন।

firebase emulators:start --import=./dir

আপনি এমুলেটরকে শাটডাউনে ডেটা রপ্তানি করার নির্দেশ দিতে পারেন, হয় একটি রপ্তানি পথ নির্দিষ্ট করে অথবা শুধুমাত্র --import পতাকায় পাস করা পাথ ব্যবহার করে।

firebase emulators:start --import=./dir --export-on-exit

এই ডেটা আমদানি এবং রপ্তানির বিকল্পগুলি firebase emulators:exec কমান্ডের সাথেও কাজ করে। আরও জানতে, এমুলেটর কমান্ড রেফারেন্স পড়ুন।

ক্লাউড স্টোরেজ এমুলেটর কীভাবে উৎপাদন থেকে আলাদা

ক্লায়েন্ট অ্যাপের পরীক্ষার জন্য, ক্লাউড স্টোরেজ এমুলেটর ফায়ারবেস এপিআই সারফেস এরিয়ার ক্ষেত্রে প্রায় পুরোপুরি প্রোডাকশনের সাথে সারিবদ্ধ করে। সমস্ত Firebase কমান্ড নিয়মিত Firebase SDKs (ওয়েব, Android, এবং Apple প্ল্যাটফর্ম) এর মধ্যে কাজ করবে বলে আশা করা হচ্ছে।

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

ক্লাউড আইএএম

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

পাব/সাব বিজ্ঞপ্তি

ক্লাউড স্টোরেজ এমুলেটর ক্লাউড পাব/সাব এমুলেটরের সাথে একীভূত হয় না এবং এইভাবে স্টোরেজ অবজেক্ট পরিবর্তনের জন্য চ্যানেল/বিজ্ঞপ্তি তৈরি করা সমর্থন করে না। আমরা সরাসরি ক্লাউড ফাংশন স্টোরেজ ট্রিগার ব্যবহার করার পরামর্শ দিই।

বালতি-স্তরের মেটাডেটা

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

তারপর কি?