اختيار قاعدة بيانات: 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
[ PREFERRED ]
Realtime Database
تخزِّن البيانات كمجموعات من المستندات.
يسهل تخزين البيانات البسيطة في المستندات التي تشبه إلى حد كبير JSON.
يسهل تنظيم البيانات المعقّدة والتسلسلية على نطاق واسع باستخدام المجموعات الفرعية داخل المستندات.
تتطلّب قدرًا أقل من إلغاء التسوية وتسطيح البيانات.
يتضمّن كل منهما حِزم 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.
ميزة "الحضور" متاحة.
الاستعلام
استرداد البيانات وفرزها وفلترتها من أيّ من قاعدتَي البيانات من خلال طلبات البحث
تتوفّر في إعدادات إقليمية. تقتصر قواعد البيانات على التوفّر على مستوى المنطقة ضمن منطقة معيّنة.
وقت استجابة منخفض للغاية، حيث لا تتجاوز أوقات الاستجابة النموذجية 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
قواعد غير متتالية تجمع بين التفويض والتحقّق من الصحة
يمكنك استخدام كلتا قاعدتَي البيانات ضمن تطبيق أو مشروع Firebase نفسه. يمكن لقاعدتَي بيانات NoSQL تخزين أنواع البيانات نفسها، وتعمل مكتبات البرامج للعملاء بطريقة مشابهة. يُرجى مراعاة الاختلافات الموضّحة سابقًا إذا قررت استخدام كلتا قاعدتَي البيانات في تطبيقك.
تاريخ التعديل الأخير: 2025-11-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-11-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]