اختيار قاعدة بيانات: 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.