اختيار قاعدة بيانات: 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 نفسه. يمكن لقواعد بيانات NoSQL تخزين أنواع البيانات نفسها، وتعمل مكتبات البرامج للعملاء بطريقة مشابهة. يُرجى مراعاة الاختلافات الموضّحة سابقًا إذا قرّرت استخدام كلتا قاعدتَي البيانات في تطبيقك.

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

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

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