Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

يحتوي كلاهما على حزم SDK للأجهزة المحمولة في الوقت الفعلي ويدعم كلاهما تخزين البيانات المحلية للتطبيقات الجاهزة للاستخدام في وضع عدم الاتصال.

قاعدة بيانات الوقت الفعلي سحابة Firestore
دعم في وضع عدم الاتصال لعملاء iOS و Android. دعم دون اتصال لأنظمة iOS و Android وعملاء الويب.

حضور

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

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

الاستعلام

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

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

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

قاعدة بيانات الوقت الفعلي سحابة Firestore
عمليات الكتابة والمعاملات الأساسية. عمليات الكتابة والمعاملات المتقدمة.

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

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

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

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

حماية

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

التسعير

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

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

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

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

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

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

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

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

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

جاهز لاختيار قاعدة بيانات؟

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