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

يعد 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.
  • حِزم متاجر النار: لا يتم تضمين الطريقة 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 الإجمالية.