اختيار قاعدة بيانات: 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 [ الخيار المفضّل ] Realtime Database
تخزين البيانات كمجموعات من المستندات
  • يسهل تخزين البيانات البسيطة في المستندات التي تشبه إلى حد كبير JSON.
  • يسهل تنظيم البيانات المعقّدة والتسلسلية على نطاق واسع باستخدام المجموعات الفرعية داخل المستندات.
  • لا تتطلّب هذه القاعدة إلغاء التسوية وتسطيح البيانات بشكل كبير.

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

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

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

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

تتضمّن كلتا قاعدتَي البيانات حِزم SDK في الوقت الفعلي مصمّمة للأجهزة الجوّالة، وتتوفّر فيهما إمكانية تخزين البيانات محليًا للتطبيقات التي يمكن استخدامها بلا إنترنت.

Cloud Firestore [ الخيار المفضّل ] Realtime Database
التوافق مع البيانات بلا إنترنت لأجهزة Apple وAndroid والويب التوافق مع البيانات بلا إنترنت لأجهزة Apple وAndroid

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

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

Cloud Firestore [ الخيار المفضّل ] Realtime Database
غير متوافق بشكل أساسي يمكنك الاستفادة من ميزة التواجد في المنزل المتوافقة مع Realtime Database's من خلال مزامنة Cloud Firestore وRealtime Database باستخدام Cloud Functions راجِع مقالة إنشاء ميزة التواجد في المنزل في Cloud Firestore. التوافق مع ميزة التواجد في المنزل

الاستعلام

يمكنك استرداد البيانات وترتيبها وفلترتها من أيّ من قاعدتَي البيانات من خلال طلبات البحث.

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

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

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

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

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

مدة التشغيل

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

قابلية التطور

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

الأمان

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

الأسعار

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

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

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

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

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

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

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

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

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

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

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