Firestore هو حلّ جيد وقابل للتوسّع لقاعدة بيانات تتيح مزامنة البيانات على جميع عملاء الويب.
بالنسبة إلى العديد من التطبيقات، يكون الدعم المُدار بلا إنترنت في Firestore مهمًا بشكل خاص، ما يتيح لك إنشاء تطبيقات سريعة الاستجابة تعمل بغض النظر عن فترة استجابة الشبكة أو الاتصال بالإنترنت. ولكن حِزم تطوير البرامج (SDK) الغنية بالميزات تأتي بحجم كبير. ما الذي يقدّمه Firebase للتطبيقات التي تحتاج فقط إلى استخدام عمليات الإنشاء والقراءة والتعديل والحذف الأساسية، ولا تحتاج إلى الدعم المُدار بلا إنترنت؟
ننصح باستخدام Firestore Lite للمطوّرين الذين لديهم خبرة في الإنشاء باستخدام Firestore ويمكنهم تقييم المقايضات لاستخدام إصدار خفيف الوزن.الحلّ: 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.