Firestore, वेब क्लाइंट पर डेटा को सिंक में रखने के लिए, ज़रूरत के हिसाब से बढ़ाया जा सकने वाला एक बेहतरीन डेटाबेस समाधान है.
कई ऐप्लिकेशन के लिए, Firestore की मैनेज की जाने वाली ऑफ़लाइन सहायता की सुविधा बहुत अहम है. इसकी मदद से, ऐसे रिस्पॉन्सिव ऐप्लिकेशन बनाए जा सकते हैं जो नेटवर्क की समस्या या इंटरनेट कनेक्टिविटी न होने पर भी काम करते हैं. हालांकि, ज़्यादा सुविधाओं वाले एसडीके का साइज़ ज़्यादा होता है. Firebase, उन ऐप्लिकेशन के लिए क्या ऑफ़र करता है जिन्हें सिर्फ़ क्रिएट, रीड, अपडेट, और मिटाने की बुनियादी कार्रवाइयां करनी होती हैं और जिन्हें मैनेज की जाने वाली ऑफ़लाइन सहायता की सुविधा की ज़रूरत नहीं होती?
समस्या हल करने का तरीका: Firestore Lite
Firestore Lite, सिर्फ़ REST पर आधारित एक स्टैंडअलोन Firestore SDK है. यह लाइटवेट है. इसकी मदद से, एक दस्तावेज़ को फ़ेच किया जा सकता है, क्वेरी को एक्ज़ीक्यूट किया जा सकता है, और दस्तावेज़ों को अपडेट किया जा सकता है. इसका साइज़, सामान्य Web SDK के साइज़ से काफ़ी कम होता है. Firestore Lite में, लेटेन्सी की भरपाई, ऑफ़लाइन कैशिंग, क्वेरी को फिर से शुरू करने, और स्नैपशॉट लिसनर की सुविधाएं शामिल नहीं हैं. हालांकि, कुछ खास इस्तेमाल के उदाहरणों के लिए, लाइब्रेरी के साइज़ और स्टार्टअप टाइम में कमी, एक बेहतरीन ट्रेडऑफ़ है.
Firestore Lite इंपोर्ट करना
Firestore Lite, मॉड्यूलर एसडीके के हिस्से के तौर पर, npm के ज़रिए उपलब्ध है. इसलिए, यह पूरी तरह से मॉड्यूलर है और इसे ट्री-शेकिंग की मदद से ऑप्टिमाइज़ किया जा सकता है.
इंपोर्ट करने का यह तरीका काम करता है.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Firestore Lite के साथ काम न करने वाली एपीआई सुविधाएं
Firestore Lite, साइज़ और स्पीड के लिए, स्टैंडर्ड Firestore SDK से ये सुविधाएं हटा देता है:
- DocumentSnapshot इवेंट हैंडलर.
onSnapshotतरीका औरDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptions, औरUnsubscribeऑब्जेक्ट शामिल नहीं हैं. - परसिस्टेंस हेल्पर.
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistence, औरclearIndexedDbPersistenceके तरीके शामिल नहीं हैं. - Firestore बंडल. `
loadBundle` तरीका और इससे जुड़े तरीके, और `LoadBundleTask` और `LoadBundleTaskProgress` ऑब्जेक्ट शामिल नहीं हैं.
दस्तावेज़ों को फ़ेच करना, क्वेरी करना, और अपडेट करना
Firestore Lite इंपोर्ट करने के बाद, एपीआई के सभी सामान्य गेट और अपडेट कॉल किए जा सकते हैं. डेटा जोड़ने और डेटा पाने के सभी इस्तेमाल के उदाहरण लागू होते हैं.
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, उन ऐप्लिकेशन के लिए सही है जिन्हें लाइव अपडेट की ज़रूरत नहीं होती और जिनमें कनेक्टिविटी होती है.
- साइज़ की सीमाएं - अगर आपको अपने पूरे JavaScript बंडल का साइज़ कम करना है, तो Firestore Lite एक बेहतरीन विकल्प है.