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

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

  • Cloud Firestore پایگاه داده سند سازگار با JSON درجه سازمانی توصیه شده است که بیش از 250000 توسعه دهنده به آن اعتماد دارند. این برای برنامه‌هایی با مدل‌های داده‌ای غنی که به قابلیت پرسش، مقیاس‌پذیری و در دسترس بودن بالا نیاز دارند، مناسب است. همچنین همگام سازی مشتری با تاخیر کم و دسترسی آفلاین به داده ها را ارائه می دهد.

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

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

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

مدل داده

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

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

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

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

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

پشتیبانی بیدرنگ و آفلاین

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

Cloud Firestore ترجیح داده شده است Realtime Database
پشتیبانی آفلاین برای اپل، اندروید و مشتریان وب. پشتیبانی آفلاین برای مشتریان اپل و اندروید.

حضور

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

Cloud Firestore ترجیح داده شده است Realtime Database
به صورت بومی پشتیبانی نمی شود. می‌توانید با همگام‌سازی Cloud Firestore و Realtime Database با استفاده از Cloud Functions Cloud Firestore پشتیبانی Realtime Database برای حضور استفاده کنید. حضور پشتیبانی می شود.

پرس و جو

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

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

می نویسد و معامله می کند

Cloud Firestore ترجیح داده شده است Realtime Database
عملیات نوشتن و تراکنش پیشرفته عملیات نوشتن و تراکنش اولیه

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

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

آپتایم

Cloud Firestore ترجیح داده شده است Realtime Database
عملکرد بسیار بالا تایم.
  • عملکرد آپتایم معمولی 99.999٪.
  • اگر در دسترس بودن از اهمیت بالایی برخوردار است، به عنوان مثال در برنامه های تجارت الکترونیک، از Cloud Firestore استفاده کنید.
عملکرد بالا تایم
  • عملکرد آپتایم معمولی 99.95٪.

مقیاس پذیری

Cloud Firestore ترجیح داده شده است Realtime Database
مقیاس بندی خودکار است.
  • مقیاس کاملاً خودکار. محدودیت های مقیاس بندی حدود 1 میلیون اتصال همزمان و 10000 نوشتن در ثانیه است. قصد داریم در آینده این محدودیت ها را افزایش دهیم.
  • دارای محدودیت در نرخ نوشتن اسناد یا نمایه های فردی است.
مقیاس بندی نیاز به اشتراک گذاری دارد.
  • به حدود 200000 اتصال همزمان و 1000 نوشتن در ثانیه در یک پایگاه داده مقیاس دهید. مقیاس گذاری فراتر از آن مستلزم به اشتراک گذاری داده های شما در چندین پایگاه داده است.
  • هیچ محدودیت محلی در نرخ نوشتن به تک تک داده ها وجود ندارد.

امنیت

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

قیمت گذاری

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

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

Cloud Firestore از محدودیت‌های هزینه روزانه برای پروژه‌های App Engine پشتیبانی می‌کند تا مطمئن شود از هزینه‌هایی که راحت هستید نمی‌گذرید.

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

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

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

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

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

درباره ویژگی های موجود در Realtime Database و Cloud Firestore بیشتر بیاموزید.

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

امیدواریم این مقایسه به شما کمک کرده باشد که در یک راه حل پایگاه داده Firebase قرار بگیرید. اکنون می توانید یاد بگیرید که چگونه یک پایگاه داده به پروژه های Firebase خود اضافه کنید.