খুব সহজভাবে বলতে গেলে, ফায়ারবেস হল একটি বাহ্যিক ডাটাবেস পরিষেবা। তারা নিজেদেরকে এভাবে সংজ্ঞায়িত করে:
"গুগল প্রদত্ত ব্যাক-এন্ড ক্লাউড কম্পিউটিং পরিষেবা এবং অ্যাপ্লিকেশন ডেভেলপমেন্ট প্ল্যাটফর্মের একটি সেট" আরও তথ্যের জন্য এখানে দেখুন: https://firebase.google.com/
ডাটাবেস পরিষেবাগুলির পাশাপাশি তারা বিভিন্ন অ্যাপ্লিকেশনের জন্য প্রমাণীকরণ এবং একীকরণ পরিষেবাও অফার করে। সমর্থিত অ্যাপ্লিকেশন এবং প্রোগ্রামিং ভাষাগুলি হল: ফ্লাটার, ডার্ট, সি++, অ্যান্ড্রয়েড, আইওএস, জাভাস্ক্রিপ্ট , ইউনিটি ইঞ্জিন এবং জাভা।
কেন এই সব কি ব্যাপার? কারণ আমরা আমাদের অ্যাপ্লিকেশনের উন্নয়নে Firebase ব্যবহার করেছি। শুধু তাই নয় আমরা এটি ব্যবহার করেছি সবচেয়ে জনপ্রিয় পরিষেবা: এটি ডাটাবেস পরিষেবা৷
আমরা জিজ্ঞাসা করতে পারি, কেন Firebase ব্যবহার করবেন? ফায়ারবেস সহজ । যেকোন ধরনের উন্নয়ন প্রকল্প করার সময় আপনাকে কিছু আকারে ব্যবহারকারীর ডেটা সংরক্ষণ করতে হবে, তখন আপনার একটি ডাটাবেসের প্রয়োজন হবে। এটি পরবর্তী বিশ্লেষণ, ডেটা পরিবর্তন, ডেটা সুরক্ষা, ডেটা পুনরুদ্ধার ইত্যাদির জন্য ব্যবহারকারীর ডেটা সংরক্ষণ করতে হতে পারে। এটি কোম্পানি, ব্যক্তি এবং সংস্থার জন্য প্রযোজ্য, এমনকি আরও গোষ্ঠীর জন্যও।
এখন যেহেতু আমরা জানি কেন আমরা ডাটাবেস ব্যবহার করি আমাদের অবশ্যই পরবর্তী প্রশ্ন জিজ্ঞাসা করতে হবে। কোন ডাটাবেস ধরনের আমাদের জন্য ভাল?
আসুন এই পার্থক্যগুলি অন্বেষণ করি। যখন আমরা এটি করি, চেষ্টা করুন এবং অনুমান করুন কোন ডাটাবেস প্রকার Firebase এর মধ্যে পড়ে ;)।
কেন্দ্রীভূত ডাটাবেস : যখন অ্যাপ্লিকেশনটির জন্য ব্যবহৃত ডাটাবেসটি এমন জায়গায় সংরক্ষণ করা হয় যেখানে এটি ব্যবহার করা ব্যক্তিদের সরাসরি শারীরিক অ্যাক্সেস থাকে। তারা তাদের ইচ্ছামত ডাটাবেস সম্পাদনা, উন্নতি, আপডেট এবং পুনর্গঠন করতে পারে। মূলত, আপনার কাছে ডাটাবেসের সম্পূর্ণ মালিকানা এবং সম্পাদনা-ক্ষমতা রয়েছে ভৌত, অভ্যন্তরীণ এবং ডিজিটাল অবকাঠামোর পরিপ্রেক্ষিতে।
বিকেন্দ্রীভূত ডেটাবেস : এটি কেন্দ্রীভূত ডেটাবেসের সম্পূর্ণ বিপরীত। তারা ওয়েব 3 ভিত্তিক ডাটাবেস। এগুলি ডাটাবেস যেখানে স্টোরেজ ডিভাইসগুলি বিভিন্ন কম্পিউটিং ডিভাইসে ছড়িয়ে পড়ে। শুধুমাত্র নির্দিষ্ট সংস্থাগুলি ডাটাবেসের অভ্যন্তরীণ কার্যকারিতা কাস্টমাইজ এবং উন্নত করতে পারে। তাদের ব্যবহারের ক্ষেত্রে সীমিত. এগুলি বেশিরভাগ ওয়েব3 অ্যাপ, টোকেন এবং অন্যান্য ওয়েব3 পণ্য হোস্ট করার জন্য তৈরি করা হয়।
ওয়েব3 ডাটাবেস সম্পর্কে আরও তথ্যের জন্য যা তাদের আরও সম্পূর্ণরূপে অন্বেষণ করে এখানে দেখুন: https://www.makeuseof.com/what-is-web3-storage-how-does-it-work/
DBaaS : এই ডাটাবেস টাইপটিকে প্রায়ই "সার্ভারলেস" হিসাবে উল্লেখ করা হয়। কারণ এই ডাটাবেস প্রকারের সাথে, যা কেন্দ্রীভূত ডাটাবেসের অনুরূপ, আপনি আপনার কাছাকাছি স্থানীয়ভাবে ডাটাবেস ধরে রাখতে পারবেন না। ডাটাবেসটি একটি 3য় অংশের কোম্পানির মাধ্যমে হোস্ট করা হয় এবং তারা আপনাকে আপনার ডাটাবেসের নির্দিষ্ট ডিজিটাল অবকাঠামো কাস্টমাইজ করার অনুমতি দেয় তবে এর বেশি কিছু নয়। এই ডাটাবেসের প্রধান বিক্রয় পয়েন্ট হল খরচ কার্যকারিতা। আপনার নিজস্ব কেন্দ্রীভূত ডাটাবেস তৈরি করার জন্য তহবিল হেমোরেজ করার পরিবর্তে আপনি প্রচেষ্টাগুলিকে উৎস থেকে বের করতে বেছে নিন। কেউ নোংরা নির্মাণ কাজ করে এবং আপনি তাদের ডাটাবেস পরিষেবাগুলি ব্যবহার করার জন্য তাদের কাছ থেকে ভাড়া নিতে পারেন। আপনি বিভিন্ন বেতন-স্তরের জন্য বিভিন্ন কার্যকারিতা পান।
আমি DBaaS ব্যবহার করা বেছে নিয়েছি। ফায়ারবেস একটি DBaaS। এই ডাটাবেস মডেলের সাশ্রয়ী প্রকৃতির কারণে আমি এটি বেছে নিয়েছি।
আমি একটি অ্যাপ তৈরি করছি। অ্যাপটির একটি ফাংশন হল ব্যবহারকারীদের নিবন্ধন, সাইন-ইন এবং সাইন-আউট করার ক্ষমতা। আপনি উপরের ছবিতে দেখতে পাচ্ছেন আমি সাইন আপ করার জন্য একটি পরীক্ষামূলক ব্যবহারকারীর নাম এবং একটি পরীক্ষা পাসওয়ার্ড তৈরি করেছি৷ একবার আমি "সাইন-আপ" বোতাম টিপলে অ্যাপটি আমার প্রাসঙ্গিক ডাটাবেসে তথ্য পাঠায়। ফায়ারবেসে হোস্ট করা ডাটাবেস। সাইন আপ করার চেষ্টা করার পরে আমি একই অ্যাপ পৃষ্ঠায় রয়েছি এবং কিছুই পরিবর্তন হয়নি। আমার ফায়ারবেসে ব্যবহারকারীদের চেক করার পর সেই সময়ে কোনো নতুন ব্যবহারকারী নিবন্ধিত হয়নি। এর মানে আমার ব্যবহারকারী নিবন্ধিত ছিল না.
নতুন ব্যবহারকারীদের চিনতে আমাদের অ্যাপ দরকার। এই পর্যায়ে একজন ডেভেলপার তাদের কোডটি দেখবেন এবং Firebase-এর জন্য অ্যাপ্লিকেশন প্রসেসিং ইন্টারফেস (API) দেখতে পাবেন এবং তারা তাদের কোডে এটিকে কীভাবে বলেছেন। তারা ভেরিয়েবলগুলিকেও দেখবে যা ব্যবহারকারীদের সংজ্ঞায়িত করে তা নিশ্চিত করতে এটি সঠিকভাবে সংজ্ঞায়িত করা হয়েছে এবং কার্যকারিতা ভাল। ডাটাবেসের সংযোগে হস্তক্ষেপ বা ইন্টারঅ্যাক্ট করে এমন কিছু আপডেট করার প্রয়োজন আছে কিনা, যেমন ব্যবহৃত লাইব্রেরি বা Firebase API লিঙ্ক নিজে থেকেই তারা দেখতে পারে। আমাদের কলগুলি উপেক্ষা করে ডাটাবেসের সমাধান খুঁজে পেতে কেউ এই সমস্ত বা আরও বেশি পদক্ষেপ করতে পারে। একটা সমস্যা আছে।
এর কোনটাই আমার ক্ষেত্রে প্রযোজ্য নয় । কেন এমন হল?
আমাকে এই স্ট্যান্ডার্ড ডিবাগিং অনুশীলনগুলির কোনটি করতে হয়নি কারণ এই নতুন প্রচেষ্টার কিছুক্ষণ আগে, আমি ডাটাবেসে নতুন ব্যবহারকারীদের নিবন্ধন করতে সক্ষম হয়েছিলাম। এক সপ্তাহের মধ্যে এটি হঠাৎ বন্ধ হয়ে যায়। আমার কোডের কোন পরিবর্তন না করে যে প্রক্রিয়াটি আগে কাজ করেছিল তা আর কাজ করছে না। এটি আমাকে ব্যাপকভাবে বিভ্রান্ত করেছে এবং আমি বারবার আমার API কল লিঙ্কটি প্রতিস্থাপন করেছি এবং এটি বিভিন্ন এলাকায় রেখেছি। আমি আমার লাইব্রেরি ব্যবহার করা এবং আমার বিভিন্ন ফাইল কলের জন্য আমার রেফারেন্স কলগুলি সংগঠিত করেছি। এমনকি Firebase-এর ডাটাবেস পরিষেবা বন্ধ কিনা তা জানতে আমি অনলাইনে গিয়েছিলাম। এই ক্ষেত্রে ছিল না। আমি তখন স্ট্যান্ডার্ড ডিবাগিং অনুশীলন শুরু করতে যাচ্ছিলাম... তারপর অবশেষে আমি সমাধান খুঁজে পেলাম ! এটা সব বরাবর আমার ইমেল ছিল.
হ্যাঁ, আমার ইমেল এই সব সময় সমাধান ছিল! এই বিষয়ে কয়েকদিন স্থবিরতার পর আমার ইমেল চেক করার পর, আমি Firebase থেকে একটি বিজ্ঞপ্তি ইমেল পেয়েছি। Firebase আমাকে অবহিত করেছে যে আমার ডাটাবেসের অ্যাক্সেস কেটে দেওয়া হয়েছে। কারণ ফায়ারবেস ডাটাবেস সেটআপের সময় আমি নিরাপত্তার উদ্দেশ্যে একটি নির্দিষ্ট তারিখে আমার ডাটাবেস অ্যাক্সেস সেটআপ করেছিলাম। আমি নিজের জন্য যোগ করা এই নিয়মটি ভুলে গিয়েছিলাম। আমি উল্লেখিত তারিখ সম্পর্কে ভুলে গিয়েছিলাম। ফলস্বরূপ যখন আমি কেটে পড়েছিলাম তখন আমি আমার ইমেল চেক করা পর্যন্ত খেয়াল করিনি। নীচে আমরা দেখতে পাচ্ছি যে আমি 12 ই মার্চ 2023 তারিখে আমাকে কেটে ফেলার জন্য ডাটাবেস সেট করেছি।
এই সমস্যাটি সমাধান করার জন্য আমার "কাট-অফ" তারিখের জন্য সময়সীমা বাড়ানোর জন্য নিয়মগুলি আপডেট করতে হবে। এখানে দেখা হয়েছে:
সমস্যা সমাধানের জন্য আমি 29শে জুনের জন্য পরবর্তী সময়সীমা রেখেছি। এইভাবে সেই সময়সীমা পর্যন্ত আমার আর কোনো বাধা থাকবে না।
কেউ জিজ্ঞাসা করতে পারে " কেন এটি এখন থেকে কয়েক বছর বা এখন থেকে আরও মাসগুলিতে সেট করবেন না যাতে আপনি এতে বিরক্ত না হন?" ভাল প্রশ্ন. আমি তা করব না কারণ আমি এই নির্ভরতার কথা মনে করিয়ে দেওয়ার জন্য সারা বছর ধরে কয়েকটি ত্রৈমাসিক অনুস্মারক চাই। আমি এটিকে দীর্ঘমেয়াদী সময়সীমার জন্য সেট করতে চাই না এবং তারপরে এটি আবার ভুলে গিয়ে এক বছর পরে একই পরিস্থিতিতে আটকে যেতে চাই না। এটি আমার মস্তিষ্কে বারবার সচেতন হওয়ার অর্থ হল আমি ক্রমাগত সমস্ত কারণের কথা ভাবছি যা অ্যাপ বিকাশকে প্রভাবিত করতে পারে যা আমি বিকাশ প্রক্রিয়া চালিয়ে যাওয়ার সাথে সাথে সহায়ক হবে। কেউ এটাকে শেখার পছন্দ বলতে পারে।
আমরা দেখতে পাচ্ছি ফায়ারবেস প্রমাণীকরণ পদ্ধতি এমনকি ব্যবহারকারীদের বিশেষ শনাক্তকারী হিসাবে একটি ব্যবহারকারী আইডি টোকেন ফেরত দেয়, এইভাবে আমরা নিশ্চিতভাবে জানি যে এটি নিবন্ধিত।
উন্নয়ন আনন্দদায়ক, কিন্তু আমাদের সবসময় ছোট জিনিস সম্পর্কে সচেতন হতে হবে। বেশিরভাগ সময় যখন অ্যাপ্লিকেশনের সাথে সমস্যা হয় তখন এটি সম্ভবত আমাদের নিজস্ব কোড ত্রুটির কারণে হয়। যাইহোক, কখনও কখনও সমস্যা আমাদের কোড থেকে নাও আসতে পারে। এটি সত্যিই একটি প্রয়োজনীয় আপডেটের মতো সহজ কিছু হতে পারে বা এই ক্ষেত্রে, সাধারণ ডাটাবেস নিয়ম পর্যালোচনার মতো।