Firestore یک راه حل پایگاه داده مقیاس پذیر خوب برای همگام نگه داشتن داده ها در بین کلاینت های وب است.
برای بسیاری از برنامهها، پشتیبانی آفلاین مدیریت شده Firestore اهمیت ویژهای دارد و به شما امکان میدهد برنامههای پاسخگو بسازید که بدون توجه به تأخیر شبکه یا اتصال اینترنت کار میکنند. اما SDK های غنی از ویژگی ها هزینه اندازه دارند. Firebase برای برنامههایی که فقط نیاز به استفاده از عملیات اولیه ایجاد، خواندن، بهروزرسانی و حذف دارند و نیازی به پشتیبانی آفلاین مدیریت شده ندارند، چه چیزی ارائه میکند؟
راه حل: Firestore Lite
Firestore Lite یک Firestore SDK سبک و مستقل فقط REST است که از واکشی سند تکی، اجرای پرس و جو و به روز رسانی سند در کسری از اندازه Web SDK معمولی پشتیبانی می کند. Firestore Lite جبران تأخیر، ذخیره آفلاین، از سرگیری پرس و جو و شنوندگان عکس فوری را حذف نمی کند، اما برای موارد استفاده خاص، کاهش اندازه کتابخانه و زمان راه اندازی یک معامله عالی ایجاد می کند.
وارد کردن Firestore Lite
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
شامل نمیشوند. - بسته های آتش نشانی . متد
loadBundle
و روشهای مرتبط، و اشیاءLoadBundleTask
وLoadBundleTaskProgress
شامل نمیشوند.
پیاده سازی واکشی اسناد، پرس و جو و به روز رسانی
پس از وارد کردن Firestore Lite، میتوانید تماسهای دریافت و بهروزرسانی همه API آشنا را برقرار کنید. موارد استفاده برای افزودن داده و دریافت داده همه اعمال می شود.
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 عالی است.