حزمة تطوير البرامج (SDK) للويب في Cloud Firestore Lite

‫Firestore هو حلّ جيد لقاعدة بيانات قابلة للتوسّع من أجل الحفاظ على مزامنة البيانات على مستوى برامج الويب.

بالنسبة إلى العديد من التطبيقات، يُعدّ دعم Firestore المُدار بلا إنترنت مهمًا بشكل خاص، فهو يتيح لك إنشاء تطبيقات سريعة الاستجابة تعمل بغض النظر عن وقت استجابة الشبكة أو الاتصال بالإنترنت. ومع ذلك، فإنّ حِزم SDK الغنية بالميزات تكون كبيرة الحجم. ماذا يقدّم Firebase للتطبيقات التي تحتاج فقط إلى استخدام عمليات الإنشاء والقراءة والتحديث والحذف الأساسية، ولا تحتاج إلى دعم مُدار بلا إنترنت؟

الحلّ: Firestore Lite

‫Firestore Lite هي حزمة تطوير برامج (SDK) مستقلة وخفيفة الوزن لخدمة Firestore تستند إلى REST فقط، وتتيح جلب المستندات الفردية وتنفيذ طلبات البحث وتعديل المستندات، وذلك بحجم أقل بكثير من حجم حزمة تطوير البرامج (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 الإجمالي.