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

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

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

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

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

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

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

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

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

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

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

ডেমো

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

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

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

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

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

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

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

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

Kotlin+KTX
// 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 কমান্ড নিয়মিত Firebase SDKs (ওয়েব, Android, এবং Apple প্ল্যাটফর্ম) এর মধ্যে কাজ করবে বলে আশা করা হচ্ছে।

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

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

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

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

ক্লাউড আইএএম

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

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

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

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

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

এরপর কি?