اختيار قاعدة بيانات: Cloud Firestore أو Realtime Database

يوفّر Firebase قاعدتَي بيانات مستندتَين إلى السحابة الإلكترونية ويمكن للعملاء الوصول إليهما. ننصح العملاء الجدد بالبدء باستخدام Cloud Firestore:

  • Cloud Firestore هي قاعدة بيانات المستندات المتوافقة مع JSON ومصمّمة للمؤسسات، ويثق بها أكثر من 600,000 مطوّر. وهي مناسبة للتطبيقات التي تحتوي على نماذج بيانات وافية تتطلّب إمكانية الاستعلام وقابلية التوسّع ومدى التوفّر العالي. وتوفّر أيضًا مزامنة للعملاء بزمن انتقال منخفض وإمكانية الوصول إلى البيانات بلا إنترنت.

  • Realtime Database هي قاعدة بيانات JSON الكلاسيكية في Firebase. وهي مناسبة للتطبيقات التي تستخدم نماذج بيانات بسيطة تتطلّب عمليات بحث بسيطة ومزامنة بزمن انتقال منخفض مع قابلية توسّع محدودة.

ما هي بعض الأمور المهمة الأخرى التي يجب مراعاتها؟

بعد التفكير في الاعتبارات الأساسية السابقة، قد تكون مستعدًا لاختيار قاعدة بيانات. إذا كنت لا تزال توازن بين المزايا والعيوب، يتناول هذا القسم الاختلافات الأخرى بين Cloud Firestore وRealtime Database.

نموذج بيانات

كل من Realtime Database وCloud Firestore هما قاعدتا بيانات NoSQL.

Cloud Firestore [ PREFERRED ] Realtime Database
تخزِّن البيانات كمجموعات من المستندات.
  • من السهل تخزين البيانات البسيطة في المستندات، والتي تشبه إلى حد كبير JSON.
  • يسهل تنظيم البيانات الهرمية المعقدة على نطاق واسع باستخدام مجموعات فرعية داخل المستندات.
  • يتطلّب ذلك قدرًا أقل من إلغاء التسوية وتسوية البيانات.

مزيد من المعلومات حول نموذج بيانات Cloud Firestore

يتم تخزين البيانات على شكل شجرة JSON كبيرة واحدة.
  • من السهل جدًا تخزين البيانات البسيطة.
  • يصعب تنظيم البيانات الهرمية المعقدة على نطاق واسع.

مزيد من المعلومات حول نموذج بيانات Realtime Database

الدعم في الوقت الفعلي وبلا إنترنت

كلاهما يحتوي على حزم تطوير برامج (SDK) في الوقت الفعلي للأجهزة الجوّالة، وكلاهما يدعم تخزين البيانات المحلية للتطبيقات الجاهزة للعمل بلا إنترنت.

Cloud Firestore [ PREFERRED ] Realtime Database
توفُّر الدعم بلا إنترنت لبرامج Apple وAndroid والويب: الدعم بلا إنترنت لأجهزة Apple وAndroid:

التواجد في المنزل

قد يكون من المفيد معرفة ما إذا كان العميل متصلاً بالإنترنت أو غير متصل. يمكن لمنصة Firebase Realtime Database تسجيل حالة اتصال العميل وتقديم تحديثات في كل مرة تتغير فيها حالة اتصال العميل.

Cloud Firestore [ PREFERRED ] Realtime Database
غير متاح بشكل تلقائي يمكنك الاستفادة من ميزة "Realtime Database" التي تتيح مزامنة Cloud Firestore وRealtime Database باستخدام Cloud Functions يُرجى الاطّلاع على إنشاء ميزة "التواجد" في Cloud Firestore. ميزة "التواجد" متاحة.

الاستعلام

استرداد البيانات وفرزها وتصفيتها من أي من قاعدتي البيانات من خلال الاستعلامات.

Cloud Firestore [ PREFERRED ] Realtime Database
طلبات البحث المفهرَسة باستخدام ميزة الترتيب والفلترةالمركّبة
  • يمكنك ربط الفلاتر ودمج الفلترة والترتيب في موقع واحد في طلب بحث واحد.
  • طلبات البحث سطحية: فهي تعرض فقط المستندات في مجموعة معيّنة أو مجموعة من المجموعات ولا تعرض بيانات المجموعة الفرعية.
  • يجب أن تعرض طلبات البحث دائمًا مستندات كاملة.
  • تتم فهرسة طلبات البحث تلقائيًا: يتناسب أداء طلب البحث مع حجم مجموعة النتائج، وليس مجموعة البيانات.
طلبات البحث المعمّقة مع ميزات محدودة للترتيب والفلترة
  • يمكن لطلبات البحث ترتيب أو فلترة سمة معيّنة، ولكن ليس كليهما.
  • تكون طلبات البحث عميقة بشكل تلقائي: فهي تعرض دائمًا الشجرة الفرعية بأكملها.
  • يمكن لطلبات البحث الوصول إلى البيانات بأي مستوى دقة، وصولاً إلى قيم العُقد الطرفية الفردية في شجرة JSON.
  • لا تتطلّب طلبات البحث فهرسًا، ولكن ينخفض أداء بعض طلبات البحث مع نمو مجموعة البيانات.

عمليات الكتابة والمعاملات

Cloud Firestore [ PREFERRED ] Realtime Database
عمليات الكتابة والمعاملات المتقدّمة
  • عمليات كتابة البيانات من خلال عمليات الضبط والتعديل، بالإضافة إلى عمليات التحويل المتقدّمة، مثل عوامل التشغيل الرقمية والمصفوفات
  • يمكن للمعاملات قراءة البيانات وكتابتها بشكل ذري من أي جزء من قاعدة البيانات.
عمليات الكتابة والمعاملات الأساسية

الموثوقية والأداء

Cloud Firestore [ PREFERRED ] Realtime Database
‫Cloud Firestore هو حلّ إقليمي ومتعدّد المناطق يتوسّع تلقائيًا.
  • حلّ بوقت استجابة منخفض، مع أوقات استجابة نموذجية لا تزيد عن 30 ملي ثانية.
  • يتم تخزين بياناتك في مراكز بيانات متعددة في مناطق مختلفة، ما يضمن قابلية التوسّع على مستوى العالم والموثوقية العالية.
  • تتوفّر هذه الخدمة في إعدادات إقليمية أو متعددة المناطق حول العالم.
يمكنك الاطّلاع على مزيد من المعلومات حول خصائص أداء Cloud Firestore وموثوقيتها في اتفاقية مستوى الخدمة.
‫Realtime Database هو حلّ إقليمي.
  • تتوفّر في الإعدادات الإقليمية. تقتصر قواعد البيانات على مدى التوفّر في منطقة معيّنة داخل منطقة جغرافية.
  • زمن انتقال منخفض للغاية، مع أوقات استجابة نموذجية لا تزيد عن 10 مللي ثانية. وهو خيار مثالي لمزامنة الحالة بشكل متكرر.
يمكنك الاطّلاع على مزيد من المعلومات حول خصائص أداء Realtime Database وموثوقيتها في اتفاقية مستوى الخدمة.

مدة التشغيل

Cloud Firestore [ PREFERRED ] Realtime Database
أداء مدة تشغيل عالٍ للغاية:
  • يبلغ أداء مدة التشغيل المعتاد %99.999.
  • إذا كان التوفّر مهمًا للغاية، كما هو الحال في تطبيقات التجارة الإلكترونية، استخدِم Cloud Firestore.
أداء عالٍ لمدة التشغيل:
  • أداء مدة التشغيل المعتاد هو %99.95.

قابلية التوسّع

Cloud Firestore [ PREFERRED ] Realtime Database
يتم التدرّج تلقائيًا.
  • تتوسّع تلقائيًا بالكامل. ما مِن حدود قصوى لعدد الاتصالات المتزامنة أو إجمالي عمليات الكتابة في قاعدة البيانات في الثانية.
  • يفرض حدودًا على معدّلات الكتابة في المستندات أو الفهارس الفردية.
يتطلّب التوسيع استخدام التقسيم.
  • يمكنك توسيع نطاق الاستخدام إلى حوالي 200,000 اتصال متزامن و1,000 عملية كتابة في الثانية في قاعدة بيانات واحدة. ويتطلّب توسيع نطاقها إلى ما هو أبعد من ذلك تقسيم بياناتك على قواعد بيانات متعددة.
  • ما مِن حدود محلية على معدلات الكتابة في أجزاء فردية من البيانات.

الأمان

Cloud Firestore [ PREFERRED ] Realtime Database
قواعد غير متسلسلة تجمع بين التفويض والتحقّق من الصحة
  • يتم تأمين عمليات القراءة والكتابة من حزم تطوير البرامج (SDK) للأجهزة الجوّالة من خلال Cloud Firestore Security Rules.
  • عمليات القراءة والكتابة من حِزم تطوير البرامج (SDK) للخادم المحمية من خلال إدارة الهوية وإمكانية الوصول (IAM)
  • لا يتم تطبيق القواعد بشكل متسلسل إلا إذا استخدمت حرف بدل.
  • يمكن أن تفرض القواعد قيودًا على طلبات البحث: إذا كانت نتائج طلب البحث قد تحتوي على بيانات لا يمكن للمستخدم الوصول إليها، سيتعذّر تنفيذ طلب البحث بالكامل.
لغة قواعد متتالية تفصل بين التفويض والتحقّق من الصحة

الأسعار

يتوفّر كلا الحلّين في خطتَي أسعار Spark وBlaze.

Cloud Firestore [ PREFERRED ] Realtime Database
يتم تحصيل الرسوم بشكل أساسي على العمليات التي يتم إجراؤها في قاعدة بياناتك (القراءة والكتابة والحذف)، وبمعدّل أقل، على معدل نقل البيانات ومساحة التخزين.

يتيح لك "Cloud Firestore" ضبط ميزانيات وتنبيهات شهرية لتجنُّب إنفاق مبالغ أكثر من الميزانية المحددة.

مزيد من المعلومات حول خطط أسعار Cloud Firestore

يتم تحصيل رسوم مقابل النطاق الترددي ومساحة التخزين فقط، ولكن بمعدّل أعلى.

مزيد من المعلومات حول خطط أسعار "Realtime Database"

استخدام كل من Cloud Firestore وRealtime Database

يمكنك استخدام كلتا قاعدتَي البيانات ضمن تطبيق Firebase أو مشروع Firebase نفسه. يمكن لكلتا قاعدتَي بيانات NoSQL تخزين أنواع البيانات نفسها، وتعمل مكتبات العملاء بطريقة مماثلة. يُرجى تذكُّر الاختلافات الموضّحة سابقًا إذا قررت استخدام كلتا قاعدتَي البيانات في تطبيقك.

يمكنك الاطّلاع على مزيد من المعلومات حول الميزات المتوفّرة في كل من Realtime Database وCloud Firestore.

هل أنت مستعد لاختيار قاعدة بيانات؟

نأمل أن تكون هذه المقارنة قد ساعدتك في اختيار حلّ قاعدة بيانات Firebase المناسب. يمكنك الآن التعرّف على كيفية إضافة قاعدة بيانات إلى مشاريعك على Firebase.