Realtime vs Cloud Firestore: أي قاعدة بيانات Firebase تختارها
نشرت: 2018-10-12يعود السجل إلى قاعدة بيانات Firebase ليس بعيدًا جدًا. تم تأسيس Firebase كمنصة تطوير للجوّال والويب ، وقد ظهر في عام 2011 ثم في عام 2014 استحوذت عليه شركة التكنولوجيا العملاقة Google وتغير مصيرها.
تخطي تاريخ تطور Firebase ، في غضون عام واحد بعد استحواذ Google عليه ، تم دمجه مع Divshot ومنذ ذلك الحين تم توسيعه ليصبح نظامًا أساسيًا موحدًا لمطوري الأجهزة المحمولة.
يتكامل Firebase الآن مع العديد من خدمات Google الأخرى لتقديم منتجات أوسع ونطاق للمطورين. في الواقع ، الفوائد التي يقدمها تجعل Firebase للشركات الناشئة عملية في الاتجاه السائد.
إذن ما هي قاعدة بيانات Firebase؟ Firebase عبارة عن BaaS ، أي Backend كخدمة. باستخدام المنتجات التي يوفرها Firebase ، لا يقتصر الأمر على مطوري الأجهزة المحمولة فقط من إنشاء تطبيقات عالية الجودة. أطلقت Google العديد من الميزات الجديدة لمستخدمي الويب Firebase أيضًا.
يوجد منتجان من Firebase يتيحان إنشاء جميع التطبيقات التي ذكرناها للتو. Realtime و Cloud Firestore.
Realtime هو المنتج الراسخ لقاعدة بيانات Firebase من Google ولا يزال Cloud Firestore ، في حين يعد بتقنيات أفضل ، في مرحلة الاختبار التجريبي.
حسب جوجل :
قاعدة بيانات Realtime هي قاعدة بيانات Firebase الأصلية. إنه حل فعال وذات زمن انتقال منخفض لتطبيق جوال يتطلب حالات متزامنة عبر العملاء في الوقت الفعلي.
Cloud Firestore هي قاعدة بيانات Firebase الرئيسية الجديدة لتطوير تطبيقات الأجهزة المحمولة . يحسن نجاحات Realtime Database بنموذج بيانات جديد أكثر سهولة. يتميز Cloud Firestore أيضًا باستعلامات ومقاييس أغنى وأسرع أفضل من قاعدة بيانات Realtime.
قبل الانتقال إلى الخصائص الفردية لقاعدة بيانات Realtime و Cloud Firestore ، دعنا نلقي نظرة على مزايا وعيوب استخدام قاعدة بيانات Firebase لمشروعك التالي:
مزايا قاعدة بيانات Firebase:
إذا ألقينا نظرة على قائمة الأسباب ، فلماذا يجب على المرء استخدام قاعدة بيانات Firebase كقاعدة بيانات شاملة لجميع عمليات تطوير تطبيقات الجوال والويب ، فسنرى سبب نجاح Firebase db في صناعة تطوير تطبيقات الأجهزة المحمولة.
- سهولة ترحيل البيانات - منحت التطورات الأخيرة للمطورين الأدوات اللازمة لترحيل البيانات بسهولة.
- لا توجد معرفة إضافية مطلوبة - لا يلزم وجود أي معرفة تقريبًا حول devOps أو مسؤول النظام للعمل في Firebase db.
- التحقق من أنواع البيانات المختلفة - على الرغم من أن بنية قاعدة بيانات Firebase غير مخطط لها ، إلا أنها لا تزال تتمتع بالقدرة الأساسية على التحقق من أنواع البيانات المختلفة.
- أداة وقفة واحدة - إنها أداة شاملة والأداة الوحيدة التي تحتاجها بالضرورة للواجهة الخلفية لتطبيق هاتف محمول صغير.
- أسهل في الاستخدام - مستوى صعوبة الاستخدام أعلى قليلاً من المتوسط ولكنه أسهل من معظم الأنظمة الأخرى عندما يتعلق الأمر بالتكامل مع التحليلات ومراقبة الأعطال
- الاستخدام المجاني - إنه مجاني في المرحلة الأولية ، لذا لا يضطر المطورون الذين يجربونه للمرة الأولى إلى القلق بشأن إجراء استثمار أولي كبير
- مكتبات الأكواد الغنية - جميع مكتبات الأكواد عبر لغات البرمجة متشابهة ويتم صيانتها جيدًا للقادمين الجدد أيضًا.
- بنية بيانات JSON - هيكل البيانات هو JSON الذي يتناسب تمامًا مع UI JavaScript.
- التطوير السريع - الحصول على تطبيق تم إنشاؤه من البداية سريع جدًا - المصادقة ، البريد الإلكتروني ، تعيين الإصدار ، الاستضافة ، المراقبة ، DevOps ، الجهوزية.
- التدفق السهل - تشغيل التحديثات أو تشغيلها في الوقت الفعلي أمر سهل للغاية.
دعونا الآن نقارن قاعدة بيانات Realtime و Cloud Firestore للحصول على فهم أوضح لوقت استخدام أي منهما. لا يزال Cloud firestore في مرحلة الاختبار التجريبي وهو يبحث ويعمل بطريقة واعدة أكثر من قاعدة بيانات Realtime. في هذه المقارنة ، سنرى كيف تختلف قاعدتا البيانات عن بعضهما البعض ومن سيفوز بقاعدة بيانات الوقت الحقيقي مقابل سحابة firestore.
نموذج البيانات
- تقوم قاعدة بيانات Realtime بتخزين البيانات كشجرة JSON كبيرة واحدة مما يجعل من السهل جدًا تخزين البيانات البسيطة ولكن يصعب تنظيم البيانات المعقدة أو الهرمية على نطاق واسع.
- من ناحية أخرى ، يقوم Cloud Firestore بتخزين البيانات في شكل مستندات يتم تنظيمها في مجموعات. في هذا ، يشبه تخزين البيانات البسيطة JSON ويتم تخزينها في المستندات. حيث أن البيانات المعقدة أو الهرمية ليس من السهل تنظيمها على نطاق واسع باستخدام المجموعات الفرعية داخل المستندات. وبشكل عام ، يتطلب الأمر قدرًا أقل من عدم التطابق وتسطيح البيانات.
دعم في الوقت الحقيقي وغير متصل
- توفر قاعدة بيانات Realtime دعمًا دون اتصال بالإنترنت إلا لعملاء الأجهزة المحمولة التي تعمل بنظام Android و iOS.
- من ناحية أخرى ، يوفر Cloud Firestore دعمًا في وضع عدم الاتصال لأجهزة Android و iOS وعملاء الويب أيضًا.
الاستعلام
- توفر قاعدة بيانات Realtime استعلامات عميقة مع وظائف فرز وتصفية محدودة حيث يمكن للمطورين إما الفرز أو التصفية على خاصية في استعلام واحد. وتكون جميع الاستعلامات عميقة بشكل افتراضي ، أي أنها تُرجع دائمًا الشجرة الفرعية بأكملها.
- يفهرس Cloud Firestore الاستعلام بالفرز والتصفية المركبين حيث يمكن للمطورين إجراء التصفية المتسلسلة والجمع بين التصفية والفرز على خاصية في استعلام واحد. من الممكن أيضًا كتابة استعلامات ضحلة للمجموعات الفرعية ، أي أنه يمكن للمطورين الاستعلام داخل مستند بدلاً من مجموعة كاملة أو مستند بأكمله. ليس هذا فقط ولكن يتم فهرسة الاستعلامات بشكل افتراضي ، فهذا يعني أن أداء الاستعلام يتناسب مع حجم مجموعة النتائج وليس مجموعة البيانات.
المعاملات
- في قاعدة بيانات Realtime ، توجد عمليات أساسية للكتابة والمعاملات. تعمل كتابة البيانات كعملية فردية وتتطلب المعاملات إعادة اتصال كاملة في مجموعات تطوير البرامج (SDK) الأصلية.
- يسمح Cloud Firestore بعمليات الكتابة والمعاملات Atomic. يقوم بتجميع العمليات وإكمالها تلقائيًا. أيضًا ، تكرر المعاملات نفسها تلقائيًا حتى تكتمل.
الأداء والموثوقية
- قاعدة البيانات الحقيقية هي منتج ناضج. إنه يتمتع باستقرار المنتج الحقيقي الذي تم تجربته واختباره عدة مرات. كما أن زمن انتقاله منخفض جدًا ، لذا فهو خيار جيد لمزامنة الحالة بشكل متكرر. على الرغم من أن قواعد البيانات تقتصر على توفر المنطقة في منطقة واحدة.
- لا يمكن قياس أداء Cloud Firestore حتى الآن لأنه لا يزال في مرحلته التجريبية. والاستقرار في منتج بيتا يختلف عن المنتج الذي تم إطلاقه بالكامل. ولكن فيما يتعلق بالموثوقية ، يضم Cloud Firestore جميع بياناتك عبر مراكز بيانات متعددة في مناطق مختلفة ، مما يضمن قابلية التوسع العالمية والموثوقية القوية. من الناحية النظرية ، عندما يخرج Cloud Firestore من الإصدار التجريبي ، سيكون لديه موثوقية أقوى من قاعدة بيانات Realtime.
قابلية التوسع
- في قاعدة بيانات Realtime ، يتطلب التحجيم التجزئة. لتوضيح الأمر ببساطة ، قم بالتوسيع إلى حوالي 100000 اتصال متزامن و 1000 عملية كتابة / ثانية في قاعدة بيانات واحدة وما بعد ذلك ، يتطلب الأمر تجزئة بياناتك عبر قواعد بيانات متعددة.
- عندما يتم إصدار Cloud firestore خارج الإصدار التجريبي ، فسيكون التحجيم فيه تلقائيًا ولن يضطر المطورون إلى تجزئة بياناتهم عبر مثيلات متعددة.
حماية
- تحتوي قاعدة بيانات الوقت الفعلي على قواعد متتالية تتطلب تحققًا منفصلاً من الصحة. قواعد قاعدة بيانات Firebase هي خيارات الأمان الوحيدة هنا ويحتاج المطورون إلى التحقق من صحة البيانات بشكل منفصل باستخدام قاعدة "التحقق من الصحة".
- يتمتع Cloud Firestore بأمان أبسط وأكثر فاعلية لأجهزة SDK للجوال والويب والخادم التي تستخدم إدارة الهوية والوصول (IAM). يتم التحقق من صحة البيانات أيضًا تلقائيًا. أيضًا ، يمكن للقواعد أن تقيد الاستعلامات ، أي إذا كانت نتائج الاستعلام تحتوي على بيانات لا يستطيع المطور الوصول إليها ، يفشل الاستعلام بالكامل.
التسعير
- لا تتقاضى قاعدة البيانات في الوقت الفعلي سوى رسوم النطاق الترددي والتخزين ولكن بسعر أعلى.
- من ناحية أخرى ، يتقاضى Cloud Firestore الرسوم بشكل أساسي على العمليات التي يتم إجراؤها في قاعدة البيانات الخاصة بك (القراءة والكتابة والحذف) وبمعدل أقل وعرض النطاق الترددي والتخزين. كما أنه يدعم حدود الإنفاق اليومية لمشاريع Google App Engine.
هل ما زلت تتساءل كيف يعمل Firebase؟ دعنا نعيد ملخص ما عرفناه في المقالة أعلاه.
متى تستخدم Realtime Database:
- إذا كانت بياناتك بسيطة وليست معقدة أو هرمية
- إذا كنت بحاجة إلى توسيع نطاق أقل من 100000 اتصال متزامن 1000 عملية كتابة / ثانية في قاعدة بيانات واحدة
- عندما تحتاج إلى قاعدة بيانات تتقاضى رسومًا مقابل النطاق الترددي والتخزين الإجمالي وليس العمليات الفردية التي يتم إجراؤها.
متى تستخدم قاعدة بيانات Cloud Firestore:
- إذا كانت بياناتك معقدة أو هرمية
- إذا كان حجم بياناتك يزيد عن 100000 اتصال متزامن
- إذا كنت بحاجة إلى حد إنفاق أكثر دقة وقاعدة بيانات يتم فرض رسوم عليها بشكل أساسي على 1 هي PicCollage و Fabulous و Shazam و Skyscanner ويمكننا جميعًا أن نتفق على أنها تعمل بنجاح.
في الختام ، تعمل نماذج Firebase db بشكل جيد بالنسبة لهم. تم تشغيل Realtime firebase بنجاح لسنوات حتى الآن وفي العام الماضي مع إصدار الإصدار التجريبي من Cloud Firestore ، هناك أشياء أفضل في متجر مطوري تطبيقات الأجهزة المحمولة وشركات تطوير التطبيقات.