Firestore হল একটি ভাল স্কেলেবল ডেটাবেস সমাধান যা ওয়েব ক্লায়েন্ট জুড়ে ডেটা সিঙ্ক করে রাখে।
অনেক অ্যাপের জন্য, Firestore-এর ম্যানেজ করা অফলাইন সাপোর্ট বিশেষভাবে গুরুত্বপূর্ণ, যা আপনাকে রেসপন্সিভ অ্যাপ তৈরি করতে দেয় যা নেটওয়ার্ক লেটেন্সি বা ইন্টারনেট কানেক্টিভিটি নির্বিশেষে কাজ করে। তবে, অনেক ফিচার সহ SDK-এর সাইজ বড় হয়। যেসব অ্যাপের শুধু তৈরি, পড়া, আপডেট ও মুছে ফেলার মতো প্রাথমিক অপারেশন প্রয়োজন এবং অফলাইন সাপোর্ট ম্যানেজ করার প্রয়োজন নেই, সেগুলির জন্য Firebase কী অফার করে?
সমাধান: Firestore Lite
Firestore Lite হল একটি লাইটওয়েট, স্বতন্ত্র REST-অনলি Firestore SDK যা একক ডকুমেন্ট ফেচ, কোয়েরি এক্সিকিউশন এবং ডকুমেন্ট আপডেট করার সুবিধা দেয়, যা সাধারণ ওয়েব SDK সাইজের একটি ভগ্নাংশ। Firestore Lite-এ লেটেন্সি কম্পেনসেশন, অফলাইন ক্যাশিং, কোয়েরি রিজাম্পশন ও স্ন্যাপশট লিসনার বাদ দেওয়া হয়েছে, তবে নির্দিষ্ট ব্যবহারের ক্ষেত্রে, লাইব্রেরির সাইজ ও স্টার্টআপ টাইম কমানোর ফলে এটি একটি দুর্দান্ত ট্রেডঅফ হয়ে উঠেছে।
Firestore Lite ইম্পোর্ট করুন
Firestore Lite, npm-এর মাধ্যমে মডিউলার SDK-এর অংশ হিসেবে উপলভ্য। তাই এটি সম্পূর্ণ মডিউলার এবং ট্রি-শেকেবল।
নিম্নলিখিত ইমপোর্ট স্টাইল কাজ করে।
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Firestore Lite-এ API ফিচার কাজ করে না
সাইজ ও স্পিডের জন্য, Firestore Lite স্ট্যান্ডার্ড Firestore SDK থেকে এইসব ফিচার বাদ দেয়:
- DocumentSnapshot ইভেন্ট হ্যান্ডলার।
onSnapshotপদ্ধতি এবংDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptionsএবংUnsubscribeঅবজেক্ট অন্তর্ভুক্ত নয়। - পারসিস্টেন্স হেল্পার।
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistenceএবংclearIndexedDbPersistenceপদ্ধতি অন্তর্ভুক্ত নয়। - Firestore বান্ডেল।
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');
Firestore Lite কখন ব্যবহার করবেন
Firestore SDK-এর অফলাইন পারসিস্টেন্স ও ক্যাশিং ফিচার কখন বন্ধ করতে হবে তা ঠিক করা কঠিন হতে পারে। Firestore Lite-এর কম ওভারহেডের জন্য ট্রেড করার সিদ্ধান্ত নেওয়ার আগে আপনাকে এই ফিচারগুলি বুঝতে হবে। সাধারণত, Firestore Lite ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়ার সময় এইসব বিষয় বিবেচনা করুন:
- অনলাইন স্ট্যাটাস - Firestore Lite সেইসব অ্যাপের জন্য ভালো যেগুলির লাইভ আপডেট প্রয়োজন হয় না এবং কানেক্টিভিটি থাকে।
- সাইজ সংক্রান্ত সীমাবদ্ধতা - আপনি যদি সামগ্রিক জাভাস্ক্রিপ্ট বান্ডেলের সাইজ কমাতে চান, তাহলে Firestore Lite ব্যবহার করা খুবই ভালো।