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

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

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

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

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

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

نموذج البيانات

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

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

تعرَّف على مزيد من المعلومات حول نموذج بيانات Cloud Firestore.

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

اطّلِع على مزيد من المعلومات عن نموذج بيانات قاعدة البيانات في الوقت الفعلي.

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

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

Cloud Firestore المفضّل قاعدة بيانات الوقت الفعلي
تتوفّر خدمة الدعم بلا اتصال بالإنترنت لأجهزة Apple وAndroid وبرامج الويب. تتوفّر خدمة الدعم بلا اتصال بالإنترنت لعملاء Apple وAndroid.

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

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

Cloud Firestore المفضّل قاعدة بيانات الوقت الفعلي
غير متاحة في الأصل. يمكنك الاستفادة من توافق Realtime Database مع التواجد من خلال مزامنة Cloud Firestore وRealtime Database باستخدام Cloud Functions. يُرجى الاطّلاع على إنشاء التواجد في Cloud Firestore. الحضور متاح:

الاستعلام

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

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

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

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

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

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

مدة التشغيل

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

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

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

الأمان

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

الأسعار

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

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

تدعم Cloud Firestore حدود الإنفاق اليومية لمشاريع App Engine لضمان عدم تجاوز التكاليف التي تناسبك.

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

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

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

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

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

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

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

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