আপনার অ্যাপ সংযুক্ত করুন এবং প্রোটোটাইপিং শুরু করুন


Firebase Local Emulator Suite ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি একটি Firebase প্রকল্প তৈরি করেছেন, আপনার ডেভেলপমেন্ট পরিবেশ সেট আপ করেছেন এবং আপনার প্ল্যাটফর্মের জন্য Firebase দিয়ে শুরু করুন বিষয় অনুসারে Firebase SDK নির্বাচন এবং ইনস্টল করেছেন: Apple , Android অথবা Web

প্রোটোটাইপ এবং পরীক্ষা

Local Emulator Suite বেশ কিছু প্রোডাক্ট এমুলেটর রয়েছে, যেমনটি Firebase Local Emulator Suite বর্ণিত হয়েছে। আপনি প্রোটোটাইপ করতে পারেন এবং পৃথক এমুলেটরের পাশাপাশি এমুলেটরের সংমিশ্রণ দিয়ে পরীক্ষা করতে পারেন, যেমনটি আপনি উপযুক্ত মনে করেন, আপনি যে ফায়ারবেস পণ্য উৎপাদনে ব্যবহার করছেন তার সাথে সঙ্গতিপূর্ণ।

ফায়ারবেস ডাটাবেস এবং ফাংশন এমুলেটরের মধ্যে মিথস্ক্রিয়া
সম্পূর্ণ Local Emulator Suite অংশ হিসেবে ডাটাবেস এবং Cloud Functions এমুলেটর।

এই বিষয়ের জন্য, Local Emulator Suite ওয়ার্কফ্লো চালু করার জন্য, ধরে নেওয়া যাক আপনি এমন একটি অ্যাপে কাজ করছেন যা পণ্যের একটি সাধারণ সংমিশ্রণ ব্যবহার করে: একটি ফায়ারবেস ডাটাবেস এবং সেই ডাটাবেসের ক্রিয়াকলাপ দ্বারা ট্রিগার করা ক্লাউড ফাংশন।

আপনার ফায়ারবেস প্রকল্পটি স্থানীয়ভাবে শুরু করার পরে, Local Emulator Suite ব্যবহার করে উন্নয়ন চক্রের সাধারণত তিনটি ধাপ থাকবে:

  1. প্রোটোটাইপ এমুলেটর এবং Emulator Suite UI সাথে ইন্টারেক্টিভভাবে বৈশিষ্ট্যযুক্ত।

  2. আপনি যদি ডাটাবেস এমুলেটর বা Cloud Functions এমুলেটর ব্যবহার করেন, তাহলে আপনার অ্যাপটিকে এমুলেটরের সাথে সংযুক্ত করার জন্য এককালীন পদক্ষেপটি সম্পাদন করুন।

  3. এমুলেটর এবং কাস্টম স্ক্রিপ্ট দিয়ে আপনার পরীক্ষাগুলি স্বয়ংক্রিয় করুন।

স্থানীয়ভাবে একটি Firebase প্রকল্প শুরু করুন

নিশ্চিত করুন যে আপনি CLI ইনস্টল করেছেন অথবা এর সর্বশেষ সংস্করণে আপডেট করেছেন

curl -sL firebase.tools | bash

যদি আপনি ইতিমধ্যেই এটি না করে থাকেন, তাহলে বর্তমান ওয়ার্কিং ডিরেক্টরিটিকে একটি Firebase প্রকল্প হিসাবে শুরু করুন, অনস্ক্রিন প্রম্পট অনুসরণ করে আপনি Cloud Functions এবং Cloud Firestore অথবা Realtime Database ব্যবহার করছেন তা নির্দিষ্ট করুন:

firebase init

আপনার প্রোজেক্ট ডিরেক্টরিতে এখন ফায়ারবেস কনফিগারেশন ফাইল, ডাটাবেসের জন্য একটি Firebase Security Rules ডেফিনিশন ফাইল, ক্লাউড ফাংশন কোড ধারণকারী একটি functions ডিরেক্টরি এবং অন্যান্য সহায়ক ফাইল থাকবে।

ইন্টারেক্টিভভাবে প্রোটোটাইপ

Local Emulator Suite এমনভাবে তৈরি করা হয়েছে যাতে আপনি দ্রুত নতুন বৈশিষ্ট্যগুলি প্রোটোটাইপ করতে পারেন এবং স্যুটের অন্তর্নির্মিত ইউজার ইন্টারফেস হল এর সবচেয়ে কার্যকর প্রোটোটাইপিং টুলগুলির মধ্যে একটি। এটি অনেকটা Firebase কনসোল স্থানীয়ভাবে চালানোর মতো।

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

আপনি যখন Local Emulator Suite শুরু করবেন তখন এটি সবই উপলব্ধ হবে:

firebase emulators:start

আমাদের কাল্পনিক অ্যাপটির প্রোটোটাইপ তৈরি করতে, আসুন একটি ডাটাবেসে টেক্সট এন্ট্রি পরিবর্তন করার জন্য একটি মৌলিক ক্লাউড ফাংশন সেট আপ এবং পরীক্ষা করি, এবং এটিকে ট্রিগার করার জন্য Emulator Suite UI তে সেই ডাটাবেসটি তৈরি এবং পূরণ করি।

  1. আপনার প্রোজেক্ট ডিরেক্টরিতে functions/index.js ফাইলটি সম্পাদনা করে ডাটাবেস লেখার মাধ্যমে ট্রিগার করা একটি ক্লাউড ফাংশন তৈরি করুন। বিদ্যমান ফাইলের বিষয়বস্তু নিম্নলিখিত স্নিপেট দিয়ে প্রতিস্থাপন করুন। এই ফাংশনটি messages সংগ্রহে ডকুমেন্টের পরিবর্তনগুলি শোনে, একটি ডকুমেন্টের original ক্ষেত্রের বিষয়বস্তুকে বড় হাতের অক্ষরে রূপান্তর করে এবং ফলাফলটি সেই ডকুমেন্টের uppercase ক্ষেত্রে সংরক্ষণ করে।
  2.   const functions = require('firebase-functions/v1');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. firebase emulators:start দিয়ে Local Emulator Suite চালু করুন:start। Cloud Functions এবং ডাটাবেস এমুলেটরগুলি শুরু হয়, স্বয়ংক্রিয়ভাবে ইন্টারঅপারেট করার জন্য কনফিগার করা হয়।
  4. আপনার ব্রাউজারে http://localhost:4000 এ UI দেখুন। UI এর জন্য ডিফল্ট পোর্ট 4000, তবে Firebase CLI দ্বারা টার্মিনাল বার্তা আউটপুট পরীক্ষা করুন। উপলব্ধ এমুলেটরগুলির অবস্থা লক্ষ্য করুন। আমাদের ক্ষেত্রে, Cloud Functions এবং Cloud Firestore এমুলেটরগুলি চলমান থাকবে।
    আমার ছবি
  5. UI-তে, Firestore > Data ট্যাবে, Start collection-এ ক্লিক করুন এবং fieldname original এবং value test সহ একটি messages সংগ্রহে একটি নতুন ডকুমেন্ট তৈরি করতে প্রম্পটগুলি অনুসরণ করুন। এটি আমাদের ক্লাউড ফাংশনটি ট্রিগার করে। লক্ষ্য করুন যে "TEST" স্ট্রিং দিয়ে একটি নতুন uppercase ক্ষেত্র শীঘ্রই প্রদর্শিত হবে।
    আমার ছবিআমার ছবি
  6. Firestore > Requests ট্যাবে, আপনার অনুকরণ করা ডাটাবেসে করা অনুরোধগুলি পরীক্ষা করুন, যার মধ্যে সেই অনুরোধগুলি পূরণের অংশ হিসাবে সম্পাদিত সমস্ত Firebase Security Rules মূল্যায়ন অন্তর্ভুক্ত রয়েছে।
  7. ডাটাবেস আপডেট করার সময় আপনার ফাংশনে কোনও ত্রুটি হয়নি তা নিশ্চিত করতে লগ ট্যাবটি পরীক্ষা করুন।

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

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

যখন আপনি ইন্টারেক্টিভ প্রোটোটাইপিংয়ের ক্ষেত্রে ভালো অগ্রগতি করবেন এবং একটি ডিজাইন ঠিক করে ফেলবেন, তখন আপনি উপযুক্ত SDK ব্যবহার করে আপনার অ্যাপে ডাটাবেস অ্যাক্সেস কোড যোগ করতে প্রস্তুত থাকবেন। আপনার অ্যাপের আচরণ সঠিক কিনা তা নিশ্চিত করার জন্য আপনি ডাটাবেস ট্যাব এবং ফাংশনের জন্য, Emulator Suite UI তে লগস ট্যাব ব্যবহার করতে থাকবেন।

মনে রাখবেন যে Local Emulator Suite একটি লোকাল ডেভেলপমেন্ট টুল। আপনার প্রোডাকশন ডাটাবেসে লেখার ফলে আপনি স্থানীয়ভাবে প্রোটোটাইপ করা ফাংশনগুলি ট্রিগার হবে না।

আপনার অ্যাপ থেকে ডাটাবেসে লেখা তৈরি করার সুবিধা নিতে, আপনাকে আপনার পরীক্ষার ক্লাস বা ইন-অ্যাপ কনফিগারেশন Cloud Firestore এমুলেটরে নির্দেশ করতে হবে।

Kotlin
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
val firestore = Firebase.firestore
firestore.useEmulator("10.0.2.2", 8080)

firestore.firestoreSettings = firestoreSettings {
    isPersistenceEnabled = false
}
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.useEmulator("10.0.2.2", 8080);

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build();
firestore.setFirestoreSettings(settings);
সুইফট
let settings = Firestore.firestore().settings
settings.host = "127.0.0.1:8080"
settings.cacheSettings = MemoryCacheSettings()
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, '127.0.0.1', 8080);

Web

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("127.0.0.1", 8080);
}

কাস্টম স্ক্রিপ্ট দিয়ে আপনার পরীক্ষাগুলি স্বয়ংক্রিয় করুন

এবার শেষ সামগ্রিক কর্মপ্রবাহের ধাপে। একবার আপনি অ্যাপের মধ্যে আপনার বৈশিষ্ট্যটির প্রোটোটাইপ তৈরি করে ফেললে এবং এটি আপনার সমস্ত প্ল্যাটফর্মে আশাব্যঞ্জক দেখালে, আপনি চূড়ান্ত বাস্তবায়ন এবং পরীক্ষার দিকে ঝুঁকতে পারেন। ইউনিট টেস্টিং এবং CI কর্মপ্রবাহের জন্য, আপনি exec কমান্ডের সাহায্যে একটি একক কলে এমুলেটর শুরু করতে, স্ক্রিপ্টেড পরীক্ষা চালাতে এবং এমুলেটর বন্ধ করতে পারেন:

firebase emulators:exec "./testdir/test.sh"

আরও গভীরভাবে পৃথক এমুলেটরগুলি অন্বেষণ করুন

এখন আপনি দেখেছেন যে ক্লায়েন্ট-সাইড ওয়ার্কফ্লো কেমন দেখাচ্ছে, আপনি স্যুটের পৃথক এমুলেটর সম্পর্কে বিশদ বিবরণ দিয়ে এগিয়ে যেতে পারেন, যার মধ্যে সার্ভার-সাইড অ্যাপ ডেভেলপমেন্টের জন্য কীভাবে সেগুলি ব্যবহার করবেন তাও অন্তর্ভুক্ত রয়েছে:

এরপর কী?

উপরে লিঙ্ক করা নির্দিষ্ট এমুলেটর সম্পর্কিত বিষয়গুলি অবশ্যই পড়ুন। তারপর: