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