ওয়েব ক্লায়েন্টগুলোর মধ্যে ডেটা সিঙ্ক করে রাখার জন্য ফায়ারস্টোর একটি ভালো ও স্কেলেবল ডেটাবেস সলিউশন।
অনেক অ্যাপের জন্য ফায়ারস্টোরের ম্যানেজড অফলাইন সাপোর্ট বিশেষভাবে গুরুত্বপূর্ণ, যা আপনাকে এমন রেসপন্সিভ অ্যাপ তৈরি করতে দেয় যা নেটওয়ার্ক ল্যাটেন্সি বা ইন্টারনেট সংযোগ নির্বিশেষে কাজ করে। কিন্তু ফিচার-সমৃদ্ধ SDK-গুলোর জন্য আকারে বড় মূল্য দিতে হয়। যেসব অ্যাপের শুধু বেসিক ক্রিয়েট, রিড, আপডেট এবং ডিলিট অপারেশনের প্রয়োজন, এবং ম্যানেজড অফলাইন সাপোর্টের দরকার নেই, তাদের জন্য ফায়ারবেস কী অফার করে?
সমাধান: ফায়ারস্টোর লাইট
ফায়ারস্টোর লাইট একটি হালকা, স্বতন্ত্র এবং শুধুমাত্র REST-ভিত্তিক ফায়ারস্টোর SDK, যা সাধারণ ওয়েব SDK-এর তুলনায় অনেক কম আকারে একক ডকুমেন্ট ফেচ, কোয়েরি এক্সিকিউশন এবং ডকুমেন্ট আপডেট সমর্থন করে। ফায়ারস্টোর লাইটে ল্যাটেন্সি কম্পেনসেশন, অফলাইন ক্যাশিং, কোয়েরি রিসাম্পশন এবং স্ন্যাপশট লিসেনার নেই, কিন্তু নির্দিষ্ট কিছু ব্যবহারের ক্ষেত্রে লাইব্রেরির আকার এবং স্টার্টআপ টাইম কমে যাওয়ায় এটি একটি দারুণ সুবিধা হিসেবে বিবেচিত হয়।
ফায়ারস্টোর লাইট আমদানি করুন
ফায়ারস্টোর লাইট মডিউলার এসডিকে- র অংশ হিসেবে এনপিএম-এর মাধ্যমে পাওয়া যায়। ফলে এটি সম্পূর্ণ মডিউলার এবং ট্রি-শেকযোগ্য।
নিম্নলিখিত ইম্পোর্ট স্টাইলটি সমর্থিত।
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
ফায়ারস্টোর লাইট দ্বারা সমর্থিত নয় এমন এপিআই বৈশিষ্ট্য
আকার ও গতির জন্য, ফায়ারস্টোর লাইট স্ট্যান্ডার্ড ফায়ারস্টোর এসডিকে থেকে এই বৈশিষ্ট্যগুলি বাদ দিয়েছে:
- DocumentSnapshot ইভেন্ট হ্যান্ডলারগুলো ।
onSnapshotমেথড এবংDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptionsওUnsubscribeঅবজেক্টগুলো অন্তর্ভুক্ত নয়। - ডেটা সংরক্ষণের সহায়কসমূহ ।
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistence, এবংclearIndexedDbPersistenceমেথডগুলো অন্তর্ভুক্ত নয়। - ফায়ারস্টোর বান্ডেলগুলোতে
loadBundleমেথড ও এর সাথে সম্পর্কিত মেথডগুলো এবংLoadBundleTaskওLoadBundleTaskProgressঅবজেক্টগুলো অন্তর্ভুক্ত থাকে না।
ডকুমেন্ট ফেচ, কোয়েরি এবং আপডেট বাস্তবায়ন করুন
Firestore Lite ইম্পোর্ট করার পর, আপনি পরিচিত সব API get এবং update কল করতে পারবেন। ডেটা যোগ করা এবং ডেটা পাওয়ার সব ব্যবহারই প্রযোজ্য।
import {
getFirestore,
getDoc,
updateDoc,
doc
} from '@firebase/firestore/lite';
const firestore = getFirestore(app);
const docRef = doc(firestore, 'collection/doc');
const docSnap = await getDoc(docRef);
await updateDoc(docRef, "field", 'value');
কখন ফায়ারস্টোর লাইট ব্যবহার করবেন
স্ট্যান্ডার্ড ফায়ারস্টোর এসডিকে-এর অফলাইন পার্সিস্টেন্স এবং ক্যাশিং ফিচারগুলো কখন ছেড়ে দেবেন, সেই সিদ্ধান্ত নেওয়া বেশ কঠিন হতে পারে। ফায়ারস্টোর লাইটের কম ওভারহেডের জন্য এই ফিচারগুলো ত্যাগ করার সিদ্ধান্ত নেওয়ার আগে আপনার এগুলো ভালোভাবে বোঝা উচিত। সাধারণভাবে, ফায়ারস্টোর লাইট ব্যবহার করবেন কিনা, সেই সিদ্ধান্ত নেওয়ার সময় এই বিষয়গুলো বিবেচনা করুন:
- অনলাইন স্ট্যাটাস - যেসব অ্যাপের লাইভ আপডেটের প্রয়োজন হয় না এবং কানেক্টিভিটি আছে, সেগুলোর জন্য ফায়ারস্টোর লাইট ভালো।
- আকারের সীমাবদ্ধতা - আপনি যদি আপনার জাভাস্ক্রিপ্ট বান্ডেলের সামগ্রিক আকার কমাতে চান, তবে ফায়ারস্টোর লাইট একটি চমৎকার বিকল্প।