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

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

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

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

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

স্থানীয় এমুলেটর সুইট বাস্তব Firebase প্রকল্প এবং ডেমো প্রকল্পের এমুলেশন সমর্থন করে।

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

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

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

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

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

ডেমো

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

ডেমো প্রকল্পগুলির জন্য প্রকল্প ID উপস্থিত রয়েছে demo- উপসর্গ।

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

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

  • সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রজেক্ট তৈরি না করেই এমুলেটর চালাতে পারবেন
  • শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড ভুলবশত নন-ইমুলেটেড (উৎপাদন) সংস্থানগুলিকে আমন্ত্রণ জানায়, তবে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোন সুযোগ নেই
  • ভাল অফলাইন সমর্থন, যেহেতু আপনার 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 এডমিন SDK আছে স্বয়ংক্রিয়ভাবে ক্লাউড স্টোরেজ এমুলেটর সাথে সংযোগ FIREBASE_STORAGE_EMULATOR_HOST এনভায়রনমেন্ট ভেরিয়েবল সেট করা হয়:

export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"

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

অন্য কোনো পরিবেশ থেকে ক্লাউড স্টোরেজ এমুলেটরের সাথে সংযোগ করার সময়, আপনাকে একটি প্রকল্প আইডি নির্দিষ্ট করতে হবে। আপনি জন্য একটি প্রকল্প আইডি পাস করতে পারেন initializeApp সরাসরি বা সেট GCLOUD_PROJECT এনভায়রনমেন্ট ভেরিয়েবল। মনে রাখবেন যে আপনার আসল ফায়ারবেস প্রকল্প আইডি ব্যবহার করার দরকার নেই; ক্লাউড স্টোরেজ এমুলেটর যতদিন এটি একটি হয়েছে যেমন কোনো প্রকল্পের আইডি গ্রহণ করবে, বৈধ বিন্যাস

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 সময়ের সাথে সাথে এই সমর্থন উন্নত করতে চায়।

তারপর কি?

  • ভিডিওগুলির একটি প্লেলিস্টে যোগ করা সেট এবং বিস্তারিত উদাহরণগুলির কীভাবে জন্য, অনুসরণ Firebase emulators প্রশিক্ষণ প্লেলিস্ট
  • যেহেতু আলোড়ন সৃষ্টি ফাংশন ক্লাউড স্টোরেজ সঙ্গে একটি টিপিক্যাল ইন্টিগ্রেশন হয়, এ Firebase এমুলেটর জন্য মেঘ কার্যাবলী সম্পর্কে আরো জানতে স্থানীয়ভাবে রান ফাংশন