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

يقدم Firebase اثنين من حلول قواعد البيانات المستندة إلى السحابة والتي يمكن للعميل الوصول إليها والتي تدعم مزامنة البيانات في الوقت الفعلي:

  • Cloud Firestore هي أحدث قاعدة بيانات Firebase لتطوير تطبيقات الهاتف المحمول. إنه يعتمد على النجاحات التي حققتها قاعدة بيانات Realtime من خلال نموذج بيانات جديد أكثر سهولة. يتميز Cloud Firestore أيضًا باستعلامات ومقاييس أكثر ثراءً وأسرع من قاعدة بيانات Realtime.

  • قاعدة بيانات Realtime هي قاعدة بيانات Firebase الأصلية. إنه حل فعال وذو زمن وصول منخفض لتطبيقات الأجهزة المحمولة التي تتطلب حالات متزامنة عبر العملاء في الوقت الفعلي.

ما هي قاعدة البيانات التي يوصي بها Firebase؟

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

كلا الحلين يقدمان:

  • حزم SDK التي تعتمد على العميل أولاً، مع عدم وجود خوادم للنشر والصيانة
  • تحديثات في الوقت الحقيقي
  • طبقة مجانية، ثم ادفع مقابل ما تستخدمه

الاعتبارات الرئيسية

بالإضافة إلى الميزات الأساسية الرائعة المشتركة بين قاعدتي البيانات، فكر في كيفية تأثير أي من الاعتبارات المذكورة أدناه أو جميعها على نجاح تطبيقاتك.

دور قاعدة البيانات
يستخدم تطبيقي قاعدة بيانات لـ...
مزامنة البيانات في المقام الأول، مع الاستعلام الأساسي.
إذا لم تكن بحاجة إلى الاستعلامات والفرز والمعاملات المتقدمة، فنوصي بقاعدة بيانات Realtime .
الاستعلام المتقدم والفرز والمعاملات.
إذا كنت بحاجة إلى تفاعلات معقدة مع بياناتك، على سبيل المثال في تطبيقات التجارة الإلكترونية، فإننا نوصي باستخدام Cloud Firestore .
العمليات على البيانات
يبدو استخدام قاعدة بيانات تطبيقي كما يلي...
عدد قليل من الجيجابايت أو أقل من البيانات التي تتغير بشكل متكرر.
إذا كان تطبيقك سيرسل دفقًا من التحديثات الصغيرة، كما هو الحال في تطبيق السبورة الرقمية، فإننا نوصي باستخدام Realtime Database .
مئات الجيجابايت إلى تيرابايت من البيانات التي تتم قراءتها في كثير من الأحيان أكثر مما يتم تغييرها.
بالنسبة لمجموعات البيانات الكبيرة جدًا، وعندما تكون هناك حاجة إلى عمليات مجمعة بشكل متكرر، نوصي باستخدام Cloud Firestore .
نموذج البيانات
أفضّل تنظيم بياناتي على أنها...
شجرة JSON بسيطة.
بالنسبة إلى بيانات JSON غير المنظمة، نوصي باستخدام Realtime Database .
الوثائق منظمة في مجموعات.
بالنسبة للمستندات والمجموعات المنظمة، نوصي باستخدام Cloud Firestore .
التوفر
احتياجات التوفر الخاصة بي هي ...
ضمان وقت تشغيل عالي للغاية بنسبة 99.999%.
إذا كان التوفر ذا أهمية قصوى، على سبيل المثال في تطبيقات التجارة الإلكترونية، فإننا نوصي باستخدام Cloud Firestore .
ضمان مدة تشغيل لا تقل عن 99.95%.
عندما يكون التوفر العالي جدًا ولكن غير الحرج مقبولًا، نوصي إما بـ Cloud Firestore أو Realtime Database .
استعلامات دون اتصال بالإنترنت حول البيانات المحلية
سيحتاج تطبيقي إلى إجراء استعلامات على الأجهزة ذات الاتصال المحدود أو المعدوم...
مرارًا.
للحصول على إمكانات الاستعلام المتطورة عن البيانات المحلية عندما يكون المستخدم غير متصل بالإنترنت، نوصي باستخدام Cloud Firestore .
نادرا أو أبدا.
إذا كنت تتوقع أن يكون المستخدمون متصلين بالإنترنت باستمرار، فنوصي باستخدام Cloud Firestore أو Realtime Database .

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

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

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

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

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

تعرف على المزيد حول نموذج بيانات قاعدة بيانات الوقت الحقيقي .

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

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

الدعم في الوقت الحقيقي وغير متصل

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

قاعدة بيانات الوقت الحقيقي سحابة فايرستور
الدعم دون اتصال بالإنترنت لعملاء Apple وAndroid. دعم دون اتصال بالإنترنت لعملاء Apple وAndroid والويب.

حضور

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

قاعدة بيانات الوقت الحقيقي سحابة فايرستور
التواجد مدعوم. غير مدعوم أصلا. يمكنك الاستفادة من دعم Realtime Database للتواجد من خلال مزامنة Cloud Firestore وRealtime Database باستخدام Cloud Functions. راجع بناء التواجد في Cloud Firestore .

الاستعلام

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

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

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

قاعدة بيانات الوقت الحقيقي سحابة فايرستور
عمليات الكتابة والمعاملات الأساسية. عمليات الكتابة والمعاملات المتقدمة.
  • كتابة عمليات البيانات من خلال عمليات التعيين والتحديث بالإضافة إلى التحويلات المتقدمة مثل عوامل المصفوفة والأرقام.
  • يمكن للمعاملات قراءة البيانات وكتابتها ذريًا من أي جزء من قاعدة البيانات.

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

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

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

قاعدة بيانات الوقت الحقيقي سحابة فايرستور
يتطلب القياس التقسيم.
  • يمكنك التوسع إلى حوالي 200000 اتصال متزامن و1000 عملية كتابة/ثانية في قاعدة بيانات واحدة. يتطلب التوسع أبعد من ذلك مشاركة بياناتك عبر قواعد بيانات متعددة.
  • لا توجد حدود محلية على معدلات الكتابة للأجزاء الفردية من البيانات.
التحجيم تلقائي.
  • المقاييس تلقائيا تماما. حاليًا، تبلغ حدود القياس حوالي مليون اتصال متزامن و10000 عملية كتابة في الثانية. ونحن نخطط لزيادة هذه الحدود في المستقبل.
  • له حدود على معدلات الكتابة للمستندات أو الفهارس الفردية.

حماية

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

التسعير

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

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

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

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

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

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

استخدام Cloud Firestore وقاعدة البيانات في الوقت الحقيقي

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

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

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

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