تُحصّل Firebase رسومًا مقابل البيانات التي تخزّنها في قاعدة بياناتك وجميع الزيارات الصادرة على الشبكة في طبقة الجلسة (الطبقة 5) من نموذج OSI. يتم تحصيل رسوم مساحة التخزين من ويتم تقييم الاشتراك يوميًا بقيمة 5 دولار أمريكي لكل غيغابايت في الشهر. عدم تأثُّر الفوترة بالموقع الجغرافي من قاعدة البيانات لديك. تشمل حركة البيانات الصادرة النفقات العامة للتشفير والاتصال من جميع عمليات قاعدة البيانات والبيانات التي يتم تنزيلها من خلال قراءات قاعدة البيانات. كلاهما يمكن أن تؤدي قراءات وكتابات قاعدة البيانات إلى تكاليف الاتصال على فاتورتك. الكل الزيارات من قاعدة البيانات وإليها، بما في ذلك العمليات التي يرفضها نظام الأمان تؤدي إلى تكاليف قابلة للفوترة.
في ما يلي بعض الأمثلة الشائعة للزيارات التي يتم إصدار فواتير بها:
- البيانات التي يتم تنزيلها: عندما يحصل العملاء على البيانات من قاعدة بياناتك، يستخدم Firebase مقابل البيانات التي يتم تنزيلها. وعادةً ما يشكل هذا الجزء الأكبر من معدل نقل البيانات، ولكنه ليس العامل الوحيد في فاتورتك.
- نفقات البروتوكول: بعض الزيارات الإضافية بين الخادم والعملاء أمرًا ضروريًا لإنشاء جلسة والحفاظ عليها. استنادًا إلى الprotocolly الأساسي، قد تتضمّن هذه الزيارات: النفقات العامة لprotocolly في الوقت الفعلي في قاعدة بيانات Firebase في الوقت الفعلي، والنفقات العامة لبروتوكول WebSocket، والنفقات العامة لعنوان HTTP. في كل مرة وإنشاء اتصال، وتكون هذه النفقات، بالإضافة إلى أي تشفير عبر طبقة المقابس الآمنة إلى التكاليف، يساهم في تكاليف الاتصال. رغم أن هذا ليس الكثير من النطاق الترددي لطلب واحد، فقد يمثل جزءًا كبيرًا من فاتورتك أو إذا كانت حمولاتك صغيرة أو كنت تجري اتصالات متكررة وقصيرة.
- نفقات تشفير طبقة المقابس الآمنة: هناك تكلفة مرتبطة بطبقة المقابس الآمنة. النفقات العامة لتشفير البيانات اللازمة لإجراء اتصالات آمنة. في المتوسّط، تبلغ هذه التكلفة حوالي 3.5 كيلوبايت لمرحلة المصافحة الأولية، وعشرات بايت تقريبًا لرؤوس سجلّات TLS في كل رسالة خارجية. بالنسبة إلى معظم التطبيقات، تكون هذه العلامة نسبة مئوية صغيرة من فاتورتك. ومع ذلك، يمكن أن تصبح نسبة كبيرة إذا كانت حالتك بالتحديد تتطلب الكثير من عمليات تأكيد الاتصال بطبقة المقابس الآمنة. على سبيل المثال، قد تتطلّب الأجهزة التي لا تتوافق مع تذاكر جلسات بروتوكول أمان طبقة النقل (TLS) إجراء عمليات مصافحة اتصال SSL بأعداد كبيرة.
- بيانات وحدة التحكّم Firebase: على الرغم من أنّ هذه البيانات لا تكون عادةً مهمة من تكاليف Realtime Database، فإن Firebase يحصِّل رسومًا مقابل البيانات التي تقرأها الكتابة من وحدة تحكم Firebase.
تقدير الاستخدام الذي تم إصدار فواتير به
للاطّلاع على اتصالات "Realtime Database" الحالية واستخدام البيانات، يُرجى الاطّلاع على الاستخدام في وحدة تحكُّم Firebase. يمكنك الاطّلاع على معدّل الاستخدام خلال مدة الفوترة الحالية أو آخر 30 يومًا أو آخر 24 ساعة.
يعرض Firebase إحصاءات الاستخدام للمقاييس التالية:
- الاتصالات: عدد عمليات الاتصال المتزامنة والمفتوحة حاليًا وفي الوقت الفعلي اتصالات بقاعدة البيانات لديك. يشمل ذلك البيانات التالية في الوقت الفعلي: الاتصالات: WebSocket والاستطلاع الطويل والأحداث التي يرسلها خادم HTML. يفعل وعدم تضمين طلبات RESTful.
- التخزين: يشير هذا المصطلح إلى مقدار البيانات التي يتم تخزينها في قاعدة البيانات. الحالات المستبعدة استضافة Firebase أو البيانات المُخزَّنة من خلال منتجات Firebase الأخرى
- عمليات التنزيل: جميع وحدات البايت التي يتم تنزيلها من قاعدة البيانات، بما في ذلك البروتوكول وأعباء التشفير.
- التحميل: يعرض هذا الرسم البياني مقدار البيانات التي يتم استخدامها ومعالجتها من قاعدة البيانات. محددة خلال مهلة محددة مدتها دقيقة واحدة. قد تظهر لك مشاكل في الأداء كلما اقتربت قاعدة البيانات من 100٪.
تحسين الاستخدام
هناك بعض أفضل الممارسات التي يمكنك استخدامها لتحسين استخدام قاعدة البيانات ومعدل نقل البيانات.
- استخدام حِزم تطوير البرامج (SDK) الأصلية: استخدِم حِزم تطوير البرامج (SDK) الأصلية كلما أمكن ذلك وفقًا لما يلي: نظام التشغيل لتطبيقك، بدلاً من REST API. تظل حِزم تطوير البرامج (SDK) مفتوحة مما يقلل من تكاليف تشفير طبقة المقابس الآمنة التي عادةً ما ينتج عنها واجهة برمجة تطبيقات REST.
- البحث عن الأخطاء: إذا كانت تكاليف معدل نقل البيانات مرتفعة بشكل غير متوقع، يُرجى التحقق. أنّ تطبيقك لا يزامن بيانات أو يتزامن أكثر من المعتاد المقصودة. لتحديد المشاكل، يمكنك استخدام أداة الملف الشخصي من أجل قياس عمليات القراءة وتفعيل تسجيل تصحيح الأخطاء في Android، الهدف-ج، والويب حِزم SDK. تحقَّق من الخلفية وعمليات المزامنة في تطبيقك للتأكّد من ذلك أن كل شيء يعمل كما تريد.
- تقليل الاتصالات: حاوِل تحسين الاتصال إن أمكن. النطاق الترددي. يمكن أن تكون طلبات REST الصغيرة والمتكرّرة أكثر تكلفة من عملية اتصال واحدة ومتواصلة باستخدام حزمة SDK الأصلية. في حال استخدام واجهة برمجة التطبيقات REST API، ننصح باستخدام ميزة "إبقاء الاتصال مفتوحًا" في بروتوكول HTTP أو الأحداث المُرسَلة من الخادم، التي يمكن أن تقلّل التكاليف الناتجة عن عمليات مصافحة طبقة المقابس الآمنة.
- استخدام تذاكر جلسات بروتوكول أمان طبقة النقل (TLS): يمكنك تقليل التكاليف الإضافية لتشفير طبقة المقابس الآمنة (SSL) في اتصالات المتابعة من خلال إصدار تذاكر جلسات بروتوكول أمان طبقة النقل (TLS). ويكون ذلك مفيدًا بشكل خاص إذا كنت تحتاج إلى اتصالات آمنة ومتكررة. إلى قاعدة البيانات.
- طلبات البحث في الفهرس: فهرسة بياناتك يقلل من إجمالي معدل نقل البيانات الذي تستخدمه لطلبات البحث، وهو ما يعني فائدة مزدوجة لخفض التكاليف وتعزيز أداء قاعدة البيانات. يمكنك استخدام أداة تحليل البيانات للعثور على طلبات البحث غير المفهرسة في قاعدة البيانات لديك.
- تحسين المستمعين: يمكنك إضافة طلبات بحث للحدّ من البيانات التي تستمع إليها.
عمليات إرجاع البيانات واستخدام أدوات معالجة الملفات التي تعمل فقط على تنزيل تحديثات البيانات،
مثل
on()
بدلاً منonce()
. بالإضافة إلى ذلك، ضع مستمعيك إلى أقصى حد ممكن للحد من كمية البيانات التي تتم مزامنتها. - تقليل تكاليف التخزين: يمكنك تنفيذ مهام التنظيف الدوري وتقليل أي تكاليف البيانات في قاعدة البيانات لديك.
- استخدام القواعد: امنع أي عمليات مكلفة قد تكون غير مصرّح بها على قاعدة البيانات لديك. على سبيل المثال، قد يؤدي استخدام Firebase Realtime Database Security Rules إلى تجنُّب أحد المواقف يقوم فيها مستخدم ضار بتنزيل قاعدة البيانات بأكملها بشكل متكرر. مزيد من المعلومات حول باستخدام قواعد قاعدة بيانات Firebase في الوقت الفعلي.
وتعتمد أفضل خطة تحسين لتطبيقك على حالة استخدامك المحددة. على الرغم من أنّ هذه القائمة ليست شاملة لأفضل الممارسات، يمكنك العثور على على مزيد من النصائح من خبراء Firebase على قناة Slack أو Stack Overflow.