Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

Firebase دو راه حل پایگاه داده مبتنی بر ابر و در دسترس مشتری را ارائه می دهد که از همگام سازی بیدرنگ داده ها پشتیبانی می کند:

  • Cloud Firestore جدیدترین پایگاه داده Firebase برای توسعه اپلیکیشن موبایل است. این بر اساس موفقیت های پایگاه داده بیدرنگ با یک مدل داده جدید و بصری تر است. Cloud Firestore همچنین دارای جستارها و مقیاس‌های غنی‌تر و سریع‌تر از پایگاه داده Realtime است.

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

Firebase کدام پایگاه داده را توصیه می کند؟

انتخاب راه حل پایگاه داده شما به عوامل زیادی بستگی دارد، اما وقتی نوبت به ویژگی های خاصی می رسد، می توانیم توصیه هایی در مورد اینکه کدام پایگاه داده برای شما مناسب است ارائه دهیم.

هر دو راه حل ارائه می دهند:

  • SDKهای مشتری اول، بدون سرور برای استقرار و نگهداری
  • به روز رسانی بیدرنگ
  • ردیف رایگان، سپس برای آنچه استفاده می کنید پرداخت کنید

ملاحظات کلیدی

فراتر از ویژگی های اصلی مشترک هر دو پایگاه داده، به این فکر کنید که چگونه یکی از ملاحظات ذکر شده در زیر بر موفقیت برنامه های شما تأثیر می گذارد.

نقش پایگاه داده
برنامه من از یک پایگاه داده برای...
در درجه اول همگام سازی داده ها، با پرس و جو اولیه.
اگر به جستجو، مرتب‌سازی و تراکنش‌های پیشرفته نیاز ندارید، پایگاه داده Realtime را توصیه می‌کنیم.
پرس و جو، مرتب سازی و تراکنش های پیشرفته.
اگر به تعاملات پیچیده با داده های خود نیاز دارید، به عنوان مثال در برنامه های تجارت الکترونیک، Cloud Firestore را توصیه می کنیم.
عملیات روی داده ها
استفاده از پایگاه داده برنامه من به نظر می رسد ...
چند گیگابایت یا کمتر از داده‌ای که مرتباً تغییر می‌کند.
اگر برنامه شما جریانی از به‌روزرسانی‌های کوچک را ارسال می‌کند، مانند یک برنامه تخته سفید دیجیتال، ما پایگاه داده Realtime را توصیه می‌کنیم.
صدها گیگابایت تا TB داده که خیلی بیشتر از تغییر خوانده می شود.
برای مجموعه داده های بسیار بزرگ، و زمانی که عملیات دسته ای اغلب مورد نیاز است، Cloud Firestore را توصیه می کنیم.
مدل داده
من ترجیح می دهم داده های خود را به صورت ...
یک درخت JSON ساده.
برای داده‌های بدون ساختار JSON، پایگاه داده Realtime را توصیه می‌کنیم.
اسناد سازماندهی شده در مجموعه ها
برای اسناد و مجموعه‌های ساختاریافته، Cloud Firestore را توصیه می‌کنیم.
دسترسی
نیازهای در دسترس بودن من ...
تضمین آپتایم بسیار بالا 99.999٪.
اگر در دسترس بودن از اهمیت بالایی برخوردار است، به عنوان مثال در برنامه های تجارت الکترونیک، Cloud Firestore را توصیه می کنیم.
تضمین حداقل 99.95% آپتایم.
هنگامی که در دسترس بودن بسیار بالا اما نه حیاتی قابل قبول است، Cloud Firestore یا Realtime Database را توصیه می کنیم.
پرس و جوهای آفلاین در داده های محلی
برنامه من باید در دستگاه‌هایی با اتصال محدود یا بدون اتصال سؤالات را انجام دهد...
مکررا.
برای قابلیت‌های پیچیده جستجو در داده‌های محلی زمانی که کاربر آفلاین است، Cloud Firestore را توصیه می‌کنیم.
به ندرت یا هرگز.
اگر انتظار دارید کاربران شما به طور مداوم آنلاین باشند، Cloud Firestore یا Realtime Database را توصیه می کنیم.
تعداد نمونه های پایگاه داده
در پروژه های فردی خود باید از ...
بسیاری از پایگاه های داده، به عنوان مثال یک پایگاه داده برای هر مشتری عمده.
از آنجایی که به شما امکان می دهد چندین پایگاه داده را به یک پروژه Firebase اضافه کنید، ما پایگاه داده Realtime را توصیه می کنیم.
فقط یک پایگاه داده
اگر به یک پایگاه داده واحد نیاز دارید، Cloud Firestore یا Realtime Database را توصیه می کنیم.

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

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

مدل داده

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

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

درباره مدل داده پایگاه داده بیدرنگ بیشتر بیاموزید.

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

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

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

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

پایگاه داده بیدرنگ Cloud Firestore
پشتیبانی آفلاین برای مشتریان اپل و اندروید. پشتیبانی آفلاین برای اپل، اندروید و مشتریان وب.

حضور

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

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

پرس و جو

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

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

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

پایگاه داده بیدرنگ Cloud Firestore
عملیات نوشتن و تراکنش اولیه عملیات نوشتن و تراکنش پیشرفته

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

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

مقیاس پذیری

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

امنیت

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

قیمت گذاری

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

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

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

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

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

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

استفاده از Cloud Firestore و پایگاه داده Realtime

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

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

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

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