Cloud Firestore Lite Web SDK

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

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

الحل: فايرستور لايت

Firestore Lite عبارة عن حزمة Firestore SDK خفيفة الوزن ومستقلة ومخصصة لـ REST فقط، وتدعم عمليات جلب المستندات الفردية وتنفيذ الاستعلام وتحديثات المستندات، بجزء صغير من حجم Web SDK العادي. يحذف Firestore Lite تعويض زمن الاستجابة، والتخزين المؤقت دون الاتصال بالإنترنت، واستئناف الاستعلامات، ومستمعي اللقطات، ولكن بالنسبة لحالات استخدام معينة، فإن التخفيضات في حجم المكتبة ووقت بدء التشغيل تمثل مقايضة رائعة.

استيراد Firestore لايت

يتوفر Firestore Lite عبر npm كجزء من SDK المعياري . وبالتالي فهي معيارية بالكامل وقابلة للاهتزاز بالشجرة.

نمط الاستيراد التالي مدعوم.

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   getDoc,
   updateDoc
} from 'firebase/firestore/lite';

ميزات واجهة برمجة التطبيقات (API) غير مدعومة بواسطة Firestore Lite

بالنسبة للحجم والسرعة، يحذف Firestore Lite هذه الميزات من Firestore SDK القياسي:

  • معالجات الأحداث 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

قد يكون من الصعب تحديد الوقت المناسب للتخلي عن ميزات الثبات والتخزين المؤقت في وضع عدم الاتصال الخاصة بـ Firestore SDK. يجب أن تفهم هذه الميزات قبل أن تقرر استبدالها بتكاليف أقل من Firestore Lite. بشكل عام، ضع هذه العوامل في الاعتبار عند تحديد ما إذا كنت تريد استخدام Firestore Lite:

  • الحالة عبر الإنترنت - يعد Firestore Lite مفيدًا للتطبيقات التي لا تحتاج إلى تحديثات مباشرة وتتمتع بإمكانية الاتصال.
  • قيود الحجم - يعد Firestore Lite أمرًا رائعًا إذا كنت تريد تقليل الحجم الإجمالي لحزمة JavaScript.