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

আপনার অ্যাপটিকে Cloud Storage for Firebase সাথে সংযুক্ত করার আগে, নিশ্চিত করুন যে আপনি Firebase Local Emulator Suite সামগ্রিক কর্মপ্রবাহ সম্পর্কে জানেন এবং Local Emulator Suite ইনস্টল এবং কনফিগার করেছেন এবং এর CLI কমান্ডগুলি পর্যালোচনা করেছেন।

একটি Firebase প্রকল্প বেছে নিন

Firebase Local Emulator Suite একটি একক ফায়ারবেস প্রকল্পের জন্য পণ্য অনুকরণ করে।

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

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

প্রকল্পের ধরণ ফিচার এমুলেটরের সাথে ব্যবহার করুন
বাস্তব

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

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

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

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

ডেমো

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

ডেমো প্রকল্পের জন্য প্রকল্প আইডিগুলিতে demo- উপসর্গ থাকে।

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

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

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

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

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

Cloud Storage for Firebase সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার ইন-অ্যাপ কনফিগারেশন বা টেস্ট ক্লাস সেট আপ করুন।

Kotlin
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
val storage = Firebase.storage
storage.useEmulator("10.0.2.2", 9199)
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseStorage storage = FirebaseStorage.getInstance();
storage.useEmulator("10.0.2.2", 9199);
সুইফট
Storage.storage().useEmulator(withHost: "127.0.0.1", port: 9199)

Web

const { getStorage, connectStorageEmulator } = require("firebase/storage");

const storage = getStorage();
if (location.hostname === "localhost") {
  // Point to the Storage emulator running on localhost.
  connectStorageEmulator(storage, "127.0.0.1", 9199);
} 

Web

var storage = firebase.storage();
if (location.hostname === "localhost") {
  // Point to the Storage emulator running on localhost.
  storage.useEmulator("127.0.0.1", 9199);
} 

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

Admin SDK গুলি

FIREBASE_STORAGE_EMULATOR_HOST এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকলে Firebase Admin SDK স্বয়ংক্রিয়ভাবে Cloud Storage for Firebase সাথে সংযুক্ত হয়:

export FIREBASE_STORAGE_EMULATOR_HOST="127.0.0.1:9199"

মনে রাখবেন যে Cloud Functions এমুলেটরটি স্বয়ংক্রিয়ভাবে Cloud Storage for Firebase এমুলেটর সম্পর্কে সচেতন, তাই আপনি Cloud Functions এবং Cloud Storage for Firebase মধ্যে ইন্টিগ্রেশন পরীক্ষা করার সময় এই ধাপটি এড়িয়ে যেতে পারেন। Cloud Storage for Firebase এ অ্যাডমিন SDK এর জন্য পরিবেশ পরিবর্তনশীল স্বয়ংক্রিয়ভাবে সেট করা হবে।

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

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

আমদানি এবং রপ্তানি ডেটা

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

firebase emulators:export ./dir

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

firebase emulators:start --import=./dir

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

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

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

Cloud Storage for Firebase কীভাবে উৎপাদন থেকে আলাদা

ক্লায়েন্ট অ্যাপ পরীক্ষার জন্য, Cloud Storage for Firebase Firebase API পৃষ্ঠের ক্ষেত্রে প্রায় নিখুঁতভাবে উৎপাদনের সাথে সারিবদ্ধ। সমস্ত Firebase কমান্ড নিয়মিত Firebase SDK (ওয়েব, অ্যান্ড্রয়েড এবং অ্যাপল প্ল্যাটফর্ম) এর মধ্যে কাজ করবে বলে আশা করা হচ্ছে।

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

গুগল ক্লাউড স্টোরেজ থেকে পার্থক্য

Cloud Storage for Firebase পণ্য, স্টোরেজ এমুলেটর সহ, স্টোরেজ অবজেক্টের উপর দৃষ্টি নিবদ্ধ করে গুগল ক্লাউড স্টোরেজ (GCS) কার্যকারিতার একটি উপসেট প্রদান করে যা ফায়ারবেস অ্যাপ তৈরির জন্য খুবই কার্যকর। Cloud Storage for Firebase নিম্নলিখিত দিকগুলিতে GCS থেকে আলাদা:

  • Cloud Storage for Firebase বর্তমানে স্টোরেজ বাকেট তৈরি, তালিকাভুক্ত, গ্রহণ বা মুছে ফেলার জন্য Bucket এপিআই সমর্থন করে না।
  • গুগল ক্লাউড স্টোরেজ অবজেক্টস এপিআই থেকে, নিম্নলিখিত পদ্ধতিগুলি সমর্থিত: copy , delete , get , insert , list , patch , rewrite , update

ক্লাউড আইএএম

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

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

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

বাকেট-স্তরের মেটাডেটা

Cloud Storage for Firebase স্টোরেজ ক্লাস, বাকেট-লেভেল CORS কনফিগারেশন, লেবেল, বা রিটেনশন নীতি সহ কোনও বাকেট-লেভেল কনফিগারেশন সমর্থন করে না। ফায়ারবেস সময়ের সাথে সাথে এই সমর্থন উন্নত করতে চায়।

এরপর কী?

  • ভিডিওর একটি সেট এবং বিস্তারিত কীভাবে করবেন তার উদাহরণের জন্য, Firebase Emulators Training Playlist অনুসরণ করুন।
  • যেহেতু ট্রিগার করা ফাংশনগুলি Cloud Storage for Firebase সাথে একটি সাধারণ ইন্টিগ্রেশন, Cloud Functions for Firebase সম্পর্কে আরও জানুন Run ফাংশন স্থানীয়ভাবে