ফায়ারবেস রিয়েলটাইম ডেটাবেস সহ ক্লাউড ফায়ার স্টোর ব্যবহার করুন

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

সম্পর্কে আরও জানুন ডাটাবেস মধ্যে পার্থক্য

ক্লাউড ফায়ারস্টোরে ডেটা সরানো হচ্ছে

আপনি যদি সিদ্ধান্ত নিয়ে থাকেন যে আপনি আপনার কিছু ডেটা রিয়েলটাইম ডেটাবেস থেকে ক্লাউড ফায়ারস্টোরে স্থানান্তর করতে চান, তাহলে নিম্নলিখিত প্রবাহটি বিবেচনা করুন৷ যেহেতু প্রতিটি ডাটাবেসের অনন্য চাহিদা এবং কাঠামোগত বিবেচনা রয়েছে, তাই একটি স্বয়ংক্রিয় স্থানান্তর পথ নেই। পরিবর্তে, আপনি এই সাধারণ অগ্রগতি অনুসরণ করতে পারেন:

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

  2. ঐতিহাসিক তথ্য সরান. আপনি ক্লাউড ফায়ারস্টোরে আপনার নতুন ডেটা কাঠামো সেট আপ করার সময়, আপনি রিয়েলটাইম ডেটাবেস থেকে আপনার নতুন ক্লাউড ফায়ারস্টোর উদাহরণে বিদ্যমান ডেটা ম্যাপ করতে এবং সরাতে পারেন৷ যাইহোক, আপনি যদি আপনার অ্যাপে উভয় ডাটাবেস ব্যবহার করেন, তাহলে আপনাকে রিয়েলটাইম ডেটাবেস থেকে ঐতিহাসিক ডেটা সরানোর দরকার নেই।

  3. রিয়েলটাইমে ফায়ারস্টোরে নতুন ডেটা মিরর করুন। আপনার নতুন ক্লাউড ফায়ারস্টোর ডাটাবেসে নতুন ডেটা লিখতে ক্লাউড ফাংশনগুলি ব্যবহার করুন কারণ এটি রিয়েলটাইম ডেটাবেসে যুক্ত হয়৷

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

নিশ্চিত করুন যে আপনি হিসাব করুন খরচ বিলিং উভয়ের জন্য রিয়েলটাইম ডাটাবেস এবং ক্লাউড Firestore

আপনার ডেটা ম্যাপ করুন

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

বিবেচনা করার জন্য প্রধান পার্থক্য

আপনি যদি আপনার বিদ্যমান রিয়েলটাইম ডেটাবেস ট্রি থেকে ক্লাউড ফায়ারস্টোর নথি এবং সংগ্রহগুলিতে ডেটা স্থানান্তর করেন, তাহলে ডেটাবেসগুলির মধ্যে নিম্নলিখিত প্রধান পার্থক্যগুলি মনে রাখবেন যা ক্লাউড ফায়ারস্টোরে আপনি কীভাবে ডেটা গঠন করবেন তা প্রভাবিত করতে পারে:

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

কর্মে সর্বোত্তম অনুশীলন

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

একটি সিটি গাইড অ্যাপ বিবেচনা করুন যা ব্যবহারকারীদের সারা বিশ্বের শহরগুলিতে উল্লেখযোগ্য ল্যান্ডমার্ক খুঁজে পেতে সহায়তা করে৷ যেহেতু রিয়েলটাইম ডেটাবেসে অগভীর পাঠের অভাব রয়েছে, তাই আপনাকে দুটি শীর্ষ-স্তরের নোডে ডেটা গঠন করতে হতে পারে, নিম্নরূপ:

// /cities/$CITY_KEY
{
  name: "New York",
  population: 8000000,
  capital: False
}

// /city-landmark/$CITY_KEY/$LANDMARK_KEY
{
  name: "Empire State Building",
  category: "Architecture"
}

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

// /cities/$CITY_ID
{
  name: "New York",
  population: 8000000,
  capital: False,
  landmarks: [... subcollection ...]
}

নথিগুলির সর্বাধিক আকার 1MB, যা একটি উপ-সংগ্রহ হিসাবে ল্যান্ডমার্ক সংরক্ষণ করার আরেকটি কারণ, প্রতিটি শহরের নথি ছোট রাখা, নেস্টেড তালিকার সাথে নথিগুলিকে ফুলে তোলার পরিবর্তে।

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

{
   cities: {
    // ...
   },

   capital-cities: {
     // ...
   }
}

ক্লাউড ফায়ারস্টোরে, আপনি একক প্রশ্ন হিসাবে জনসংখ্যার ক্রম অনুসারে রাজধানী শহরগুলির একটি তালিকা প্রকাশ করতে পারেন:

db.collection('cities')
    .where('capital', '==', true)
    .orderBy('population')

সম্পর্কে আরও পড়ুন ক্লাউড Firestore তথ্য মডেল এবং আমাদের কটাক্ষপাত করা সলিউশন কিভাবে আপনার ক্লাউড Firestore ডাটাবেস গঠন করবেন সে বিষয়ে আরো ধারনা।

আপনার ডেটা সুরক্ষিত করুন

আপনি ব্যবহার করছেন কিনা মেঘ Firestore সিকিউরিটি রুলস অ্যান্ড্রয়েড অ্যাপল, বা ওয়েব ক্লায়েন্ট, বা পরিচয় অ্যাক্সেস ম্যানেজমেন্ট (IAM) সার্ভারের জন্য, নিশ্চিত করুন যে আপনি ক্লাউড Firestore এ আপনার ডেটা সেইসাথে রিয়েলটাইম ডাটাবেস সুরক্ষিত আছে। ব্যবহারকারী প্রমাণীকরণ উভয় ডাটাবেসের জন্য প্রমাণীকরণ দ্বারা পরিচালিত হয়, তাই আপনি ক্লাউড ফায়ারস্টোর ব্যবহার শুরু করার সময় আপনার প্রমাণীকরণের বাস্তবায়ন পরিবর্তন করতে হবে না।

বিবেচনা করার জন্য প্রধান পার্থক্য

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

ক্লাউড ফায়ারস্টোরে ঐতিহাসিক ডেটা সরান

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

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

ক্লাউড ফায়ারস্টোরে ঐতিহাসিক ডেটা স্থানান্তর করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. রিয়েলটাইম ডাটাবেস থেকে আপনার ডেটা রপ্তানি বা একটি সাম্প্রতিক ব্যাকআপ ব্যবহার
    1. যান রিয়েলটাইম ডাটাবেস অধ্যায় Firebase কনসোলে।
    2. ডাটা ট্যাব থেকে, আপনার ডাটাবেস রুট-লেভেল নোড নির্বাচন এবং মেনু থেকে রপ্তানি তাদেরকে JSON নির্বাচন করুন।
  2. ক্লাউড Firestore আপনার নতুন ডাটাবেস তৈরি করুন এবং আপনার ডেটা যোগ

    ক্লাউড ফায়ারস্টোরে আপনার কিছু ডেটা সরানোর সময় নিম্নলিখিত কৌশলগুলি বিবেচনা করুন:

    • একটি কাস্টম স্ক্রিপ্ট লিখুন যা আপনার জন্য আপনার ডেটা পোর্ট করে। আমরা এই স্ক্রিপ্টের জন্য একটি টেমপ্লেট প্রস্তাব না পারে, কারণ প্রত্যেক ডাটাবেসের অনন্য চাহিদা থাকবে, আমাদের উপর মেঘ Firestore বিশেষজ্ঞদের ফসকা চ্যানেল বা স্ট্যাক ওভারফ্লো আপনার নির্দিষ্ট পরিস্থিতির জন্য আপনার স্ক্রিপ্টের বা অফার পরামর্শ পর্যালোচনা করতে পারেন।
    • ক্লাউড ফায়ারস্টোরে সরাসরি ডেটা লিখতে সার্ভার SDKs (Node.js, Java, Python, or Go) ব্যবহার করুন৷ সার্ভার SDK আছে সেট আপ নির্দেশাবলীর জন্য, দেখুন শুরু করা যাক
    • অত্যধিক ডেটা মাইগ্রেশন, ব্যবহার তরাণ্বিত করতে শ্রেণীবদ্ধ লিখেছেন ও একটি একক নেটওয়ার্ক অনুরোধের 500 অপারেশন পর্যন্ত পাঠান।
    • অধীনে থাকতে ক্লাউড Firestore হার সীমা , 500 লিখেছেন / প্রতিটি সংগ্রহের জন্য দ্বিতীয় সীমা অপারেশন।

ক্লাউড ফায়ারস্টোরে নতুন ডেটা যোগ করুন

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

ক্লাউড ফায়ারস্টোরে নতুন বা পরিবর্তন করা ডেটা লেখার জন্য একটি ফাংশন তৈরি করুন প্রতিবার যখন কোনও ক্লায়েন্ট রিয়েলটাইম ডেটাবেসে ডেটা লেখে। সম্পর্কে আরও জানুন রিয়েলটাইম ডাটাবেস ট্রিগার ক্লাউড কার্যাবলী জন্য।

স্থানান্তরিত ডেটার জন্য ক্লাউড ফায়ারস্টোরকে আপনার প্রাথমিক ডাটাবেস করুন৷

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

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

  2. আপনার ডেটা সঠিকভাবে সুরক্ষিত আছে তা যাচাই করুন। আপনার ক্লাউড ফায়ারস্টোর নিরাপত্তা নিয়ম বা IAM সেটআপ যাচাই করুন।