حزمة تطوير البرامج (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.
  • حِزم 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.