يحتوي هذا المستند على قائمة مرجعية بأفضل الممارسات والاعتبارات التي يجب مراعاتها قبل إطلاق تطبيق Firebase في مرحلة الإنتاج.
أفضل الممارسات العامة لإصدار التطبيقات
تأكَّد من اختبار جميع التغييرات في Firebase Local Emulator Suite (للمنتجات المتوافقة) قبل طرحها في بيئة الإنتاج. يمكن أن يساعد الاختبار الشامل في تجنُّب الأخطاء المكلفة.
ابدأ فرض Firebase App Check لكل خدمة تتيح هذه الميزة. تساعد خدمة App Check في ضمان عدم وصول أي تطبيقات أخرى إلى خدمات الخلفية والموارد.
استخدِم عمليات الطرحFirebase Remote Config لإصدار الميزات والتحديثات الجديدة لتطبيقك بأمان وتدريجيًا.
إذا لم يسبق لك إجراء ذلك، ننصحك بإعداد Firebase Crashlytics. هذه الأداة خفيفة الوزن وتتيح إعداد تقارير الأعطال في الوقت الفعلي، ما يساعدك في تتبُّع مشاكل الثبات وتحديد أولويتها وإصلاحها، وهي مشاكل تؤدي إلى تدهور جودة تطبيقك.
التعرّف على حدود خطة الأسعار وإعداد تنبيهات بشأن الميزانية
احرص على عدم تجاوز حدود الاستخدام والحصص بعد الانتقال إلى مرحلة الإنتاج، خاصةً إذا كنت تستخدم خطة Spark بدون تكلفة. ننصحك بالترقية إلى خطة Blaze المَرِنة.
إعداد تنبيهات بشأن الميزانية لمشروعك
يُرجى العِلم أنّ تنبيهات الميزانية ليست حدودًا قصوى للميزانية. سيرسل إليك التنبيه رسائل عندما تقترب من الحدّ الذي تم ضبطه أو تتجاوزه، ما يتيح لك اتّخاذ إجراء في تطبيقك أو مشروعك.
ننصحك بإعداد تنبيهات وإجراءات متقدّمة، مثل الدوال التي ستوقف الفوترة استجابةً للتنبيهات.
إذا كنت تستخدم Firebase AI Logic أو App Hosting أو Cloud Functions for Firebase أو Firebase Extensions، ننصحك بشدة بإعدادحدود قصوى للإنفاق على الميزانية، ما سيؤدي إلى إيقاف الخدمة المعنية مؤقتًا إذا تجاوز مشروعك الميزانية المحدّدة لهذه الخدمة.
تتبُّع استخدامك في لوحات البيانات الخاصة بالمنتج أو في لوحة البيانات المركزية الاستخدام والفوترة في وحدة تحكّم Firebase
التأكّد من اتّباع مشاريع وتطبيقات Firebase لأفضل الممارسات
سواء كنت مطوّرًا فرديًا أو جزءًا من فريق كبير، من المهم التأكّد من أنّ مشاريعك وتطبيقاتك ومواردك على Firebase محمية وآمنة ويمكن تطويرها بما يتناسب مع التغييرات في فريقك.
من المفيد تذكُّر أنّ مشروع Firebase هو في الواقع مجرّد Google Cloud مشروع تم تفعيل خدمات وإعدادات Firebase له. وهذا يعني أنّ العديد من أفضل الممارسات التي تنصح بها Google Cloud تنطبق أيضًا على Firebase.
استخدِم مشاريع مختلفة على Firebase للتطوير والاختبار والإصدار العلني.
حاوِل الحدّ من التعرّض غير المتوقّع للمشروع المرتبط بتطبيقك المتاح على الإصدار العلني. يمكنك الاطّلاع على مزيد من المعلومات حول إعداد سير عمل التطوير.
احرص على حماية مشاريعك المهمة، وخاصةً المشروع المرتبط بتطبيقك على قناة الإصدار العلني.
استخدِم قيود المشاريع للحماية من الحذف غير المقصود للمشاريع.
طبِّق علامة"الإنتاج" في وحدة تحكّم Firebase لتسهيل التعرّف على بيئة الإنتاج.
إذا لم يسبق لك إجراء ذلك، ننصحك بإعداد Google Cloud مؤسسة وإضافة مشاريع Firebase إليها.
أضِف أكثر من مالك واحد إلى مشاريعك على Firebase، خاصةً إذا كان مشروعك غير تابع لمؤسسة Google Cloud. مزيد من المعلومات حول الحالات التي تتطلّب تعيين مالكين وكيفية إجراء ذلك لمشروع Firebase
أضِف أعضاء المشروع (المعروفين أيضًا باسم "المسؤولون") كمجموعات Google بدلاً من إضافتهم بشكل فردي.
يسهّل استخدام المجموعات عملية تحديد الأدوار لأعضاء الفريق بشكل مجمّع، كما يسهّل إدارة المستخدمين الذين لديهم إذن الوصول إلى مشروعك على Firebase، خاصةً إذا كان أعضاء الفريق يتناوبون أو يغادرون.
امنح كل فرد في المشروع (المعروف أيضًا باسم "المسؤول") مستوى الوصول المناسب إلى مشاريعك ومواردك على Firebase. يمكنك الاطّلاع على مزيد من المعلومات في مقالة إدارة إذن الوصول إلى المشاريع باستخدام "إدارة الهوية وإمكانية الوصول" في Firebase.
تأكَّد من أنّ كل فرد من أعضاء المشروع المعنيين (المعروف أيضًا باسم "المسؤول") قد أعدّ إعدادات تلقّي التنبيهات بشأن منتجات أو حالة مشروع معيّنَين (مثل تغييرات خطة الفوترة أو حدود الحصة). يمكنك الاطّلاع على مزيد من المعلومات في مقالة تلقّي تنبيهات Firebase.
يمكنك أيضًا بشكل اختياري تخصيص "جهات الاتصال الأساسية" في مشروعك إذا كنت تريد أن يتلقّى أعضاء معيّنون أو إضافيون في المشروع الإشعارات. ويكون ذلك مفيدًا بشكل خاص لضمان تلقّي أكثر من مالك المشروع إشعارات بشأن الفوترة والتغييرات القانونية وتغييرات المنتج.
قصر استخدام مفاتيح واجهة برمجة التطبيقات في Firebase على واجهات برمجة التطبيقات التي يجب أن تكون مدرَجة في قائمة واجهات برمجة التطبيقات المسموح بها للمفتاح. يمكنك أيضًا الاطّلاع على المعلومات حول مفاتيح واجهة برمجة التطبيقات في قائمة التحقّق من الأمان في Firebase.
تجهيز الخدمات المحدّدة المستخدَمة في تطبيقك
قد يكون لكل منتج وخدمة مستخدَمة في تطبيقك اعتبارات محدّدة عند استخدامها في الإصدار العلني.
Firebase AI Logic
Google Analytics
حدِّد شروط الجمهور Google Analytics لبدء جمع بيانات الإحصاءات بدءًا من إطلاق تطبيقك.
ننصحك بتفعيل تصدير بيانات Google Analytics إلى BigQuery لتتمكّن من تحليل بياناتك باستخدام BigQuery SQL أو تصدير البيانات لاستخدامها مع أدواتك الخاصة.
احرص على أن تقتصر خصائص المستخدمين على المعلومات التي ستكون ذات صلة بدورة حياة تطبيقك بالكامل، علمًا بأنّه هناك حدّ لعدد الخصائص التي يمكنك إنشاؤها، ولا يمكن أرشفة هذه الخصائص.
راجِع إعدادات Google Analytics الأدوار في Google Analytics مواقعك وحساباتك. تتم إدارة هذه الأذونات بشكل منفصل عن أذونات وأدوار إدارة الهوية وإمكانية الوصول في مشروع Firebase.
تأكَّد من صحة رقم تعريفك على App Store ورقم تعريف الفريق (إذا لزم الأمر) في إعدادات المشروع في وحدة تحكّم Firebase.
App Check
تأكَّد من صحة رقم تعريف الفريق في إعدادات المشروع في وحدة تحكّم Firebase.
إذا لم يسبق لك ذلك، ابدأ فرض Firebase App Check لكل خدمة تتيح استخدامها. تساعد خدمة App Check في ضمان عدم وصول أي تطبيقات أخرى إلى خدمات الخلفية والموارد.
Authentication
أوقِف أي مقدّمي خدمات لا تستخدمهم (خاصةً المصادقة المجهولة).
إذا كان تطبيقك يستخدم ميزة "تسجيل الدخول باستخدام حساب Google"، عليك تخصيص شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth.
تخصيص نطاقك والمُرسِل لخدمة إرسال الرسائل الإلكترونية Authentication
إذا كنت تستخدم خدمات التحقّق من رقم الهاتف عبر الرسائل القصيرة في Identity Platform، ابدأ فرض Firebase App Check وإعداد سياسة منطقة الرسائل القصيرة لحماية تطبيقك من إساءة استخدام الرسائل القصيرة.
تنفيذ إجراءات معالجة الأخطاء على منصات Apple الشائعة Authentication
أضِف تجزئة SHA-1 للإصدار لشهادة توقيع تطبيقك في إعدادات المشروع في وحدة تحكّم Firebase. مطلوب تجزئة SHA-1 إذا كان تطبيقك يستخدم ميزة "تسجيل الدخول باستخدام رقم الهاتف" أو ميزة "تسجيل الدخول باستخدام حساب Google" (التي تتطلّب توفّر عميل OAuth).
أضِف عناصر تحكّم في الوصول إلى نطاقاتك لمنع الاستخدام غير المصرَّح به. على وجه التحديد، عليك السماح بالوصول إلى نطاق الإنتاج في قسم Authentication في وحدة تحكّم Firebase (هذا مهم بشكل خاص إذا كنت تستخدم منتجات تعتمد على Firebase Security Rules).
Cloud Firestore
إعداد Cloud Firestore Security Rules لمنع الوصول غير المقصود إلى البيانات
استخدِم ProGuard لتخفيض حجم الرموز في بنية الإصدار. بدون ProGuard، يمكن أن تؤدي حزمة تطوير البرامج (SDK) Cloud Firestore والملفات التابعة لها إلى زيادة حجم حزمة APK.
Cloud Messaging
ننصحك بتفعيل تصدير بيانات Cloud Messaging إلى BigQuery لتتمكّن من تحليل بياناتك باستخدام BigQuery SQL أو تصدير البيانات لاستخدامها مع أدواتك الخاصة.
حمِّل مفتاح مصادقة APNS لتطبيق Cloud Messaging على تطبيقات Apple في وحدة تحكّم Firebase. في حال استخدام شهادات APNS، تأكَّد من تحميل شهادة APNS الخاصة بالإنتاج.
Cloud Storage
- اضبط إعدادات Cloud Storage Security Rules لمنع الوصول إلى البيانات عن غير قصد.
Crashlytics
تأكَّد من أنّ كل فرد من أعضاء المشروع المعنيين (المعروف أيضًا باسم "المسؤول") يضبط إعداداته المفضّلة لتلقّي تنبيهات بشأن Crashlytics أو حالة المشروع (مثل تغييرات خطة الفوترة أو حدود الحصة). يمكنك الاطّلاع على مزيد من المعلومات في مقالة تلقّي تنبيهات Firebase.
ننصحك بتفعيل تصدير بيانات Crashlytics إلى BigQuery لتتمكّن من تحليل بياناتك باستخدام BigQuery SQL أو تصدير البيانات لاستخدامها مع أدواتك الخاصة.
(على أجهزة Android وiOS فقط) ننصحك بتفعيل ميزة "المساعدة المستندة إلى الذكاء الاصطناعي" في Crashlytics للمساعدة في تسريع عملية فهم سبب حدوث عُطل والإجراءات التي يجب اتّخاذها لحلّه.
حمِّل ملف dSYM لإصدارات الإصدارات لاستخدامه في Crashlytics. تأكَّد من أنّ Xcode يمكنه معالجة ملفات dSYM وتحميلها تلقائيًا.
تحميل ملف ربط ProGuard لإصدارات التطبيق بغرض استخدامه في Crashlytics يمكن تحميل الملفات باستخدام Firebase CLI.
ربط Firebase بخدمة Google Play للحصول على نظرة أكثر شمولاً على سلامة تطبيق Android على سبيل المثال، يمكنك فلترة تقارير الأعطال في تطبيقك حسب Google Play المسار، ما يتيح لك التركيز بشكل أفضل على إصدارات معيّنة في لوحة البيانات.
بالنسبة إلى الإصدارات التي تستهدف نظام التشغيل Android وتستخدم IL2CPP، احرص على تحميل الرموز البرمجية الأصلية لكل عملية إنشاء إصدار على حدة تريد توفير رموز برمجية لها، بغض النظر عما إذا كانت هناك أي تغييرات في الرموز البرمجية أو الإعدادات.
Dynamic Links
- تم إيقاف Dynamic Links نهائيًا، لذا ننصحك بنقل بياناتك من الخدمة. يمكنك الاطّلاع على مزيد من المعلومات في الأسئلة الشائعة حول الإيقاف النهائي.
Firebase ML
اطّلِع على مقالة إعداد تطبيق Firebase ML Apple للإصدار العلني.
اطّلِع على مقالة إعداد Firebase ML تطبيق Android للإصدار العلني.
Performance Monitoring
تأكَّد من أنّ كل فرد من أعضاء المشروع المعنيين (المعروف أيضًا باسم "المسؤول") قد أعدّ إعداداته المفضّلة لتلقّي تنبيهات بشأن Performance Monitoring أو حالة المشروع (مثل تغييرات خطة الفوترة أو حدود الحصة). يمكنك الاطّلاع على مزيد من المعلومات في مقالة تلقّي تنبيهات Firebase.
ننصحك بتفعيل تصدير بيانات Performance Monitoring إلى BigQuery لتتمكّن من تحليل بياناتك باستخدام BigQuery SQL أو تصدير البيانات لاستخدامها مع أدواتك الخاصة.
Realtime Database
اضبط إعدادات Realtime Database Security Rules لمنع الوصول إلى البيانات عن غير قصد.
تأكَّد من أنّك مستعدّ للتوسّع. تتضمّن Realtime Database حصة تلقائية كبيرة بما يكفي لمعظم التطبيقات، ولكن قد تحتاج بعض التطبيقات إلى سعة إضافية.
ضبط قواعد Proguard للعمل مع Realtime Database
Remote Config
- تأكَّد من أنّ أي قواعد تجريبية Remote Config لا تؤثّر في مستخدمي الإصدار، ومن توزيع الإعدادات التلقائية المناسبة على الخادم وداخل التطبيق.