انتخاب پایگاه داده: Cloud Firestore یا Realtime Database

‫Firebase دو پایگاه داده سند ابری با قابلیت دسترسی کارخواه ارائه می‌دهد. توصیه می‌کنیم مشتریان جدید با Cloud Firestore شروع کنند:

  • Cloud Firestore پایگاه داده سند سازگار با JSON در سطح سازمانی توصیه‌شده است که بیش‌از ۶۰۰٬۰۰۰ توسعه‌دهنده به آن اعتماد دارند. این پایگاه داده برای برنامه‌هایی با مدل‌های داده غنی که به قابلیت پُرسمان، مقیاس‌پذیری، و دردسترس بودن بالا نیاز دارند مناسب است. همچنین همگام‌سازی مشتری با تأخیر کم و دسترسی به داده‌های آفلاین را ارائه می‌دهد.

  • Realtime Database پایگاه داده کلاسیک Firebase JSON است. این پایگاه داده برای برنامه‌هایی با مدل‌های داده ساده که به جستجوهای ساده و همگام‌سازی با تأخیر کم و مقیاس‌پذیری محدود نیاز دارند مناسب است.

چه موارد مهم دیگری را باید درنظر گرفت؟

پس‌از فکر کردن درباره ملاحظات کلیدی قبلی، ممکن است آماده باشید که پایگاه داده‌ای را انتخاب کنید. اگر هنوز درحال سنجیدن مزایا و معایب هستید، این بخش تفاوت‌های دیگر بین Cloud Firestore و Realtime Database را پوشش می‌دهد.

مدل داده

‫Realtime Database و Cloud Firestore هر دو پایگاه داده NoSQL هستند.

Cloud Firestore [ PREFERRED ] Realtime Database
داده‌ها را به‌صورت مجموعه‌ای از اسناد ذخیره می‌کند.
  • ذخیره کردن داده‌های ساده در اسناد آسان است، که بسیار شبیه به JSON است.
  • سازمان‌دهی داده‌های پیچیده و سلسله‌مراتبی در مقیاس بزرگ بااستفاده از زیرمجموعه‌ها در اسناد آسان‌تر است.
  • به غیرعادی‌سازی و مسطح‌سازی داده کمتری نیاز دارد.

درباره مدل داده Cloud Firestore بیشتر بدانید.

داده‌ها را به‌صورت یک درخت JSON بزرگ ذخیره می‌کند.
  • ذخیره کردن داده‌های ساده بسیار آسان است.
  • سازمان‌دهی داده‌های پیچیده و سلسله‌مراتبی در مقیاس بزرگ دشوارتر است.

درباره مدل داده Realtime Database بیشتر بدانید.

پشتیبانی هم‌زمان و آفلاین

هر دو دارای کیت‌های توسعه نرم‌افزار بی‌درنگ و اولویت‌دهنده به تلفن همراه هستند و هر دو از ذخیره‌سازی داده‌های محلی برای برنامه‌های آماده برای حالت آفلاین پشتیبانی می‌کنند.

Cloud Firestore [ PREFERRED ] Realtime Database
پشتیبانی آفلاین برای Apple،‏ Android، و کارخواهان وب. پشتیبانی آفلاین برای کارخواهان Apple و Android.

حضور

دانستن اینکه مشتری چه زمانی آنلاین یا آفلاین است می‌تواند مفید باشد. Firebase Realtime Database می‌تواند وضعیت اتصال مشتری را ثبت کند و هربار که وضعیت اتصال مشتری تغییر می‌کند، به‌روزرسانی ارائه دهد.

Cloud Firestore [ PREFERRED ] Realtime Database
به‌طور بومی پشتیبانی نمی‌شود. می‌توانید با همگام‌سازی Cloud Firestore و Realtime Database بااستفاده از Cloud Functions، از پشتیبانی Realtime Database برای حضور استفاده کنید. ساختن حضور در Cloud Firestore را ببینید. از حضور پشتیبانی می‌شود.

درحال پُرسمان

داده‌ها را ازطریق پُرسمان از هریک از پایگاه‌های داده بازیابی، مرتب، و فیلتر کنید.

Cloud Firestore [ PREFERRED ] Realtime Database
پرس‌وجوهای نمایه‌شده با مرتب‌سازی و فیلتر کردن ترکیبی.
  • می‌توانید فیلترها را زنجیره‌ای کنید و فیلتر کردن و مرتب‌سازی را در یک ویژگی در یک پُرسمان ترکیب کنید.
  • پرس‌وجوها سطحی هستند: فقط اسناد موجود در یک مجموعه یا گروه مجموعه خاص را برمی‌گردانند و داده‌های زیرمجموعه را برنمی‌گردانند.
  • پُرسمان‌ها باید همیشه کل اسناد را برگردانند.
  • پرسمان‌ها به‌طور پیش‌فرض نمایه‌سازی می‌شوند: عملکرد پرسمان متناسب با اندازه مجموعه نتایج شما است، نه مجموعه داده‌های شما.
پرس‌وجوهای عمیق با ویژگی‌های محدود مرتب‌سازی و فیلتر کردن.
  • پُرسمان‌ها می‌توانند براساس یک ویژگی مرتب‌سازی یا فیلتر کنند، اما نه هر دو.
  • پرس‌وجوها به‌طور پیش‌فرض عمیق هستند: همیشه کل زیردرخت را برمی‌گردانند.
  • پُرسمان‌ها می‌توانند به داده‌ها در هر سطح جزئیاتی دسترسی داشته باشند، حتی تا مقادیر گره برگ منفرد در درخت JSON.
  • پرسمان‌ها به نمایه نیاز ندارند؛ اما عملکرد برخی‌از پرسمان‌ها با رشد مجموعه داده شما کاهش می‌یابد.

نوشتن‌ها و تراکنش‌ها

Cloud Firestore [ PREFERRED ] Realtime Database
عملیات پیشرفته نوشتن و تراکنش.
  • عملیات نوشتن داده ازطریق عملیات تنظیم و به‌روزرسانی و همچنین تبدیل‌های پیشرفته مانند آرایه و عملگرهای عددی.
  • تراکنش‌ها می‌توانند به‌طور اتمی داده‌ها را از هر بخشی از پایگاه داده بخوانند و بنویسند.
عملیات‌های تراکنش و نوشتن پایه.

قابلیت اطمینان و عملکرد

Cloud Firestore [ PREFERRED ] Realtime Database
Cloud Firestore راهکاری منطقه‌ای و چندمنطقه‌ای است که به‌طور خودکار مقیاس‌بندی می‌شود.
  • راهکاری با تأخیر کم، با زمان پاسخ معمول حداکثر ۳۰ میلی‌ثانیه.
  • داده‌های شما را در چندین مرکز داده در مناطق متمایز نگهداری می‌کند و مقیاس‌پذیری جهانی و قابلیت اطمینان قوی را تضمین می‌کند.
  • در پیکربندی‌های منطقه‌ای یا چندمنطقه‌ای در سراسر جهان دردسترس است.
درباره ویژگی‌های عملکرد و قابلیت اطمینان Cloud Firestore در قرارداد سطح خدمات بیشتر بخوانید.
Realtime Database یک راهکار منطقه‌ای است.
  • در پیکربندی‌های محلی دردسترس است. پایگاه‌های داده به دردسترس بودن منطقه‌ای در یک ناحیه محدود هستند.
  • تأخیر بسیار کم، با زمان پاسخ معمول حداکثر ۱۰ میلی‌ثانیه. گزینه‌ای ایده‌آل برای همگام‌سازی مکرر وضعیت.
درباره ویژگی‌های عملکرد و قابلیت اطمینان Realtime Database در قرارداد سطح خدمات بیشتر بخوانید.

زمان فعال بودن دستگاه

Cloud Firestore [ PREFERRED ] Realtime Database
عملکرد زمان فعال بودن دستگاه بسیار بالا.
  • عملکرد معمول زمان فعال بودن دستگاه ۹۹٫۹۹۹٪ است.
  • اگر دردسترس بودن از اهمیت بسیار بالایی برخوردار است، مثلاً در برنامه‌های تجارت الکترونیک، از Cloud Firestore استفاده کنید.
عملکرد زمان فعال بودن دستگاه بالا.
  • عملکرد معمول زمان فعال بودن دستگاه ۹۹٫۹۵٪ است.

میزان‌پذیری

Cloud Firestore [ PREFERRED ] Realtime Database
مقیاس‌بندی خودکار است.
  • به‌طور کاملاً خودکار مقیاس‌بندی می‌کند. هیچ محدودیتی برای اتصالات هم‌زمان یا نرخ کلی نوشتن/ثانیه در پایگاه داده وجود ندارد.
  • دارای محدودیت‌هایی در نرخ‌های نوشتن برای اسناد یا نمایه‌های فردی است.
مقیاس‌بندی به بخش‌بندی نیاز دارد.
  • مقیاس‌بندی تا حدود ۲۰۰٬۰۰۰ اتصال هم‌زمان و ۱٬۰۰۰ نوشتن در ثانیه در یک پایگاه داده واحد. مقیاس‌بندی فراتر از آن مستلزم بخش‌بندی داده‌هایتان در چندین پایگاه داده است.
  • هیچ محدودیت محلی‌ای برای نرخ‌های نوشتن در بخش‌های مجزای داده وجود ندارد.

امنیت

Cloud Firestore [ PREFERRED ] Realtime Database
قوانین غیرآبشاری که مجوز و اعتبارسنجی را ترکیب می‌کنند.
  • خواندن و نوشتن از کیت‌های توسعه نرم‌افزار تلفن همراه که توسط Cloud Firestore Security Rules ایمن شده‌اند.
  • خواندن و نوشتن از کیت‌های توسعه نرم‌افزار سرور که با مدیریت هویت و دسترسی‌ها (IAM) ایمن شده‌اند.
  • قوانین آبشاری نیستند مگراینکه از نویسه عام استفاده کنید.
  • قوانین می‌توانند پرسمان‌ها را محدود کنند: اگر نتایج پرسمان حاوی داده‌هایی باشد که کاربر به آن‌ها دسترسی ندارد، کل پرسمان ناموفق می‌شود.
زبان قوانین آبشاری که مجوزدهی و اعتبارسنجی را از هم جدا می‌کند.
  • خواندن و نوشتن از کیت‌های توسعه نرم‌افزار تلفن همراه که توسط Realtime Database Security Rules ایمن شده است.
  • قوانین خواندن و نوشتن آبشاری هستند.
  • شما داده‌ها را به‌طور جداگانه بااستفاده از قانون validate اعتبارسنجی می‌کنید.

قیمت‌گذاری

هر دو راهکار در طرح‌های قیمت‌گذاری Spark و Blaze دردسترس هستند.

Cloud Firestore [ PREFERRED ] Realtime Database
هزینه‌ها عمدتاً براساس عملیات انجام‌شده در پایگاه داده شما (خواندن، نوشتن، حذف) و با نرخ پایین‌تر، پهنای باند و فضای ذخیره‌سازی است.

Cloud Firestore از بودجه‌ها و هشدارهای ماهانه پشتیبانی می‌کند تا از صرف هزینه بیشتر از آنچه برایتان راحت است جلوگیری شود.

درباره طرح‌های قیمت‌گذاری Cloud Firestore بیشتر بخوانید.

فقط برای پهنای باند و فضای ذخیره‌سازی هزینه دریافت می‌کند، اما با نرخ بالاتر.

درباره طرح‌های قیمت‌گذاری Realtime Database بیشتر بخوانید.

استفاده از Cloud Firestore و Realtime Database

می‌توانید از هر دو پایگاه داده در یک برنامه یا پروژه Firebase استفاده کنید. هر دو پایگاه داده NoSQL می‌توانند انواع یکسانی از داده‌ها را ذخیره کنند و کتابخانه‌های کارخواه به روش مشابهی کار می‌کنند. اگر تصمیم گرفتید از هر دو پایگاه داده در برنامه‌تان استفاده کنید، تفاوت‌های ذکرشده در بالا را به‌خاطر داشته باشید.

درباره ویژگی‌های دردسترس در Realtime Database و Cloud Firestore بیشتر بدانید.

آماده‌اید پایگاه داده‌ای انتخاب کنید؟

امیدواریم این مقایسه به شما کمک کرده باشد تا درباره راهکار پایگاه داده Firebase تصمیم بگیرید. اکنون می‌توانید با نحوه افزودن پایگاه داده به پروژه‌های Firebase آشنا شوید.