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

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

  • Cloud Firestore هي قاعدة بيانات مستندات يُنصح بها ومتوافقة مع JSON ومناسبة للمؤسسات، ويثق بها أكثر من 250,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
يتم التوسّع تلقائيًا.
  • تتوسّع نطاقًا تلقائيًا بالكامل. تبلغ حدود التوسيع حوالي مليون عملية ربط متزامنة و10,000 عملية كتابة في الثانية. ونخطّط لزيادة هذه الحدود في المستقبل.
  • يفرض حدودًا على معدّلات الكتابة في المستندات أو الفهارس الفردية.
يتطلّب التوسيع تقسيم البيانات.
  • يمكنك توسيع نطاق قاعدة البيانات الواحدة لتشمل حوالي 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 وضع حدود إنفاق يومية لمشاريع App Engine، وذلك للتأكّد من عدم تجاوز التكاليف التي تناسبك.

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

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

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

استخدام Cloud Firestore وRealtime Database

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

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

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

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