يمثل Firestore حلاً جيدًا لقواعد البيانات قابلاً للتوسع للحفاظ على تزامن البيانات على الويب الدائمين.
بالنسبة إلى العديد من التطبيقات، يكون الدعم المُدار بلا اتصال بالإنترنت من Firestore مهمًا بشكل خاص، مما يتيح لك إنشاء تطبيقات سريعة الاستجابة تعمل بغض النظر عن وقت استجابة الشبكة أو اتصال بالإنترنت. ولكن حِزم SDK الغنية بالميزات تزيد من حجم التطبيق. المزايا هل يوفّر Firebase للتطبيقات التي تحتاج فقط إلى أدوات الإنشاء والقراءة والتحديث الأساسية؟ وحذف العمليات، ولا تحتاج إلى دعم مُدار بلا اتصال؟
الحل: Firestore Lite
Firestore Lite هي حزمة تطوير برامج (SDK) خفيفة الوزن ومُستقلة تستخدم بروتوكول REST فقط في Firestore، وهي تسمح بجمع مستند واحد وتنفيذ طلبات بحث وتعديل مستندات، وذلك بحجم يمثّل جزءًا بسيطًا من حجم حزمة تطوير البرامج (SDK) العادية للويب. تحذف Firestore Lite تعويض وقت الاستجابة، التخزين المؤقت بلا اتصال بالإنترنت واستئناف طلبات البحث وأدوات معالجة اللقطات، ولكن بشكل خاص فإن انخفاض حجم المكتبة ووقت بدء التشغيل يُعد مفاضلة كبيرة.
استيراد Firestore Lite
يتوفّر Firestore Lite من خلال npm كجزء من حزمة تطوير برامج (SDK) نموذجية من المهم وبالتالي وحدة تمامًا وقابلة للاهتزاز على الأشجار.
يتوفّر أسلوب الاستيراد التالي.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
ميزات واجهة برمجة التطبيقات غير المتاحة في Firestore Lite
من أجل تقليل الحجم والسرعة، لا تتضمّن حزمة Firestore Lite الإصدار العادي من مكتبة تنمية البرامج (SDK) لـ Firestore:
- معالجات أحداث 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
قد يكون من الصعب تحديد وقت التخلي عن حزمة تطوير البرامج (SDK) العادية من Firestore ميزات الاحتفاظ والتخزين المؤقت دون اتصال بالإنترنت. يجب فهم هذه الميزات قبل اتخاذ قرار استبدالها بميزات Firestore Lite الأقل تكلفة. بشكلٍ عام، عليك مراعاة هذه العوامل عند تحديد ما إذا كنت تريد استخدام Firestore Lite:
- حالة الاتصال بالإنترنت: تناسب Firestore Lite التطبيقات التي لا تحتاج إلى تعديلات مباشرة وتكون متصلة بالإنترنت.
- قيود الحجم - يعد Firestore Lite أمرًا رائعًا إذا كنت تريد تقليل الحجم الإجمالي لحزمة JavaScript.