Cloud Firestore Lite Web SDK

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

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

الحل: Firestore Lite

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

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

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

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

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

ميزات واجهة برمجة التطبيقات غير مدعومة من قبل 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.