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

يعد Firestore حلاً جيدًا لقواعد البيانات قابل للتوسع للحفاظ على تزامن البيانات عبر عملاء الويب.

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

الحل: Firestore Lite

Firestore Lite هي حزمة تطوير برامج (SDK) خفيفة مستقلة تستند إلى 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.
  • حِزم متاجر النار: لا يتم تضمين طريقة 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.