این سند حاوی بازبینیای از روالهای مطلوب و ملاحظات قبلاز راهاندازی برنامه Firebase در محیط تولید است.
روالهای مطلوب عمومی برای انتشار
مطمئن شوید که همه تغییراتتان را در Firebase Local Emulator Suite (برای محصولات پشتیبانیشده) قبلاز استقرار در محیط تولید آزمایش کردهاید. آزمایش کامل میتواند به جلوگیری از اشتباهات پرهزینه کمک کند.
اجرای Firebase App Check را برای هر سرویسی که از آن پشتیبانی میکند شروع کنید. App Check کمک میکند مطمئن شوید فقط برنامههای واقعی شما میتوانند به منابع و سرویسهای زیرین دسترسی داشته باشند.
فهرست وارسی امنیت عمومی Firebase را بررسی کنید.
از Firebase Remote Config عرضه تدریجی برای انتشار ایمن و تدریجی ویژگیهای جدید و بهروزرسانیهای برنامه استفاده کنید.
اگر قبلاً این کار را نکردهاید، Firebase Crashlytics را راهاندازی کنید. این یک گزارشگر خرابی سبکوزن و بلادرنگ است که به شما کمک میکند مشکلات پایداری را که کیفیت برنامهتان را کاهش میدهد پیگیری، اولویتبندی، و رفع کنید.
با محدودیتهای طرح قیمتگذاریتان آشنا شوید و هشدارهای بودجه تنظیم کنید
مطمئن شوید که پساز رفتن به مرحله تولید، بهویژه اگر از طرح Spark بدون هزینه استفاده میکنید، به محدودیتهای استفاده و سهمیه برخورد نمیکنید. ارتقا به طرح قیمتگذاری Blaze با پرداخت به اندازه استفاده را درنظر بگیرید.
راهاندازی هشدار بودجه برای پروژه.
توجه داشته باشید که هشدارهای بودجه سقف بودجه نیستند. وقتی به آستانه پیکربندیشده خود نزدیک میشوید یا از آن فراتر میروید، هشداری برای شما ارسال میشود تا بتوانید در برنامه یا پروژهتان اقدام کنید.
راهاندازی هشدارها و کنشهای پیشرفته را مدنظر قرار دهید، مثل توابعی که در پاسخ به هشدارها، صورتحساب را غیرفعال میکنند.
اگر از Firebase AI Logic، Firebase 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 IAM بیشتر بدانید.
مطمئن شوید که هر عضو پروژه مربوطه (یا «اصلی») اولویتهای خود را برای دریافت هشدار درباره محصولات خاص یا وضعیت پروژه (مانند تغییرات طرح صورتحساب یا محدودیتهای سهمیه) تنظیم میکند. در دریافت هشدارهای Firebase بیشتر بدانید.
همچنین میتوانید بهصورت اختیاری «مخاطبین ضروری» پروژهتان را سفارشیسازی کنید اگر میخواهید اعضای خاص یا اضافی پروژه اعلانها را دریافت کنند. این کار بهویژه برای اطمینان از اینکه علاوهبر «مالک» پروژه، افراد دیگری هم اعلانهای مربوط به تغییرات صورتحساب، حقوقی، و محصول را دریافت میکنند مفید است.
کلیدهای Firebase API خود را فقط به APIهایی که باید در فهرست مجاز API کلید باشند محدود کنید. همچنین، اطلاعات مربوط به کلیدهای میانای برنامهسازی کاربردی را در بازبینه امنیتی Firebase بررسی کنید.
سرویسهای خاص مورداستفاده در برنامهتان را آماده کنید
هر محصول و سرویسی که در برنامهتان استفاده میشود ممکن است ملاحظات خاصی داشته باشد وقتی در دسته هدف استفاده میشود.
Firebase AI Logic
Google Analytics
شرایط مخاطب را برای Google Analytics تعریف کنید تا جمعآوری دادههای تجزیهوتحلیل از زمان راهاندازی برنامهتان شروع شود.
درنظر بگیرید صادر کردن دادههای Google Analytics به BigQuery را فعال کنید تا بتوانید دادههایتان را با BigQuery SQL تجزیهوتحلیل کنید یا دادهها را صادر کنید تا با ابزارهای خودتان استفاده کنید.
داراییهای کاربر را به اطلاعاتی که برای چرخه حیات کل برنامه شما مرتبط است محدود کنید. تعداد داراییهایی که میتوانید ایجاد کنید محدود است و نمیتوان آنها را بایگانی کرد.
تنظیمات Google Analytics نقش را برای داراییها و حسابهای Google Analytics خود مرور کنید. این اجازهها بهطور جداگانه از اجازهها و نقشهای IAM پروژه Firebase مدیریت میشوند.
مطمئن شوید «شناسه App Store» و «شناسه تیم» (درصورت لزوم) در تنظیمات پروژه کنسول Firebase صحیح باشد.
App Check
مطمئن شوید «شناسه تیم» شما در تنظیمات پروژه کنسول Firebase صحیح باشد.
اگر قبلاً این کار را نکردهاید، اجرای Firebase App Check را برای هر سرویسی که از آن پشتیبانی میکند شروع کنید. App Check کمک میکند مطمئن شوید فقط برنامههای واقعی شما میتوانند به منابع و سرویسهای زیرین دسترسی داشته باشند.
Authentication
هر ارائهدهندهای را که استفاده نمیکنید غیرفعال کنید (بهویژه اصالتسنجی ناشناس).
اگر برنامهتان از «ورود به سیستم با Google» استفاده میکند، صفحه کسب رضایت OAuth خود را شخصیسازی کنید.
دامنه و فرستنده خود را برای Authentication سرویس ارسال ایمیل سفارشیسازی کنید.
اگر از سرویسهای درستیسنجی پیامکی Identity Platform استفاده میکنید، اجرای Firebase App Check را شروع کنید و خطمشی منطقه پیامک را پیکربندی کنید تا از برنامهتان دربرابر سوءاستفاده پیامکی محافظت کنید.
مدیریت کردن خطا را در پلاتفرمهای Apple برای خطاهای رایج Authentication پیادهسازی کنید.
در تنظیمات پروژه کنسول Firebase، درهمسازی SHA-1 نسخه پخش را برای گواهینامه امضای برنامه خود اضافه کنید. اگر برنامهتان از ورود به سیستم با شماره تلفن یا «ورود به سیستم با Google» (که به کارخواه OAuth نیاز دارد) استفاده میکند، درهمسازی SHA-1 الزامی است.
برای جلوگیری از استفاده غیرمجاز، کنترل دسترسی برای دامنههایتان اضافه کنید. بهطور مشخص، در بخش Authentication کنسول Firebase، دسترسی به دامنه تولیدتان را مجاز کنید (این کار بهویژه اگر از محصولاتی استفاده میکنید که به Firebase Security Rules متکی هستند مهم است).
Cloud Firestore
برای جلوگیری از دسترسی غیرعمدی به دادهها، Cloud Firestore Security Rules را پیکربندی کنید.
از ProGuard برای کوچک کردن کد در ساختار انتشار استفاده کنید. بدون ProGuard، کیت توسعه نرمافزار Cloud Firestore و وابستگیهای آن میتواند اندازه APK شما را افزایش دهد.
Cloud Messaging
درنظر بگیرید صادر کردن دادههای Cloud Messaging به BigQuery را فعال کنید تا بتوانید دادههایتان را با BigQuery SQL تجزیهوتحلیل کنید یا دادهها را صادر کنید تا با ابزارهای خودتان استفاده کنید.
«کلید اصالت APNS» خود را برای Cloud Messaging در برنامههای Apple در Firebase کنسول بارگذاری کنید. اگر از گواهینامههای APNS استفاده میکنید، مطمئن شوید که گواهینامه APNS تولیدی شما بارگذاری شده باشد.
ثبت گزارش ممیزی ابری را برای Cloud Messaging فعال کنید تا بتوانید گزارشهای ممیزی تولید کنید که فعالیتهای مدیریتی و دسترسی را در منابع Google Cloud شما ثبت میکنند.
حتماً بهطور دورهای به جدیدترین نسخه کیت توسعه نرمافزار بهروزرسانی کنید تا از ویژگیهای جدید و بهروزرسانیهای امنیتی مطلع باشید.
Cloud Messagingروالهای مطلوب مدیریت کد ثبت را در سرور برنامهتان دنبال کنید. برای اطمینان از گزارشدهی معتبر ارسال و هدفیابی کارآمد پیام، نشانهای ثبت را با مُهر زمان ذخیره کنید، آنها را درصورت تغییر بهروز کنید، و نشانهای قدیمی (غیرفعال برای بیشاز یک ماه) را بردارید.
هنگام ارسال پیامهای Cloud Messaging در مقیاس بزرگ، روالهای مطلوب را دنبال کنید. از HTTP v1 API یا Firebase Admin SDK استفاده کنید، عقبنشینی نمایی با لرزش را برای تلاشهای مجدد پیادهسازی کنید، و سرصفحههای
Retry-Afterرا رعایت کنید تا از جهشهای ترافیک و محدودیتهای نرخ جلوگیری کنید.
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 برای تولید مراجعه کنید.
به آماده کردن برنامه Android Firebase ML برای تولید مراجعه کنید.
Performance Monitoring
مطمئن شوید هر عضو پروژه مربوطه (یا «اصلی») اولویتهای خود را برای دریافت هشدار درباره Performance Monitoring یا وضعیت پروژه (مانند تغییرات طرح صورتحساب یا محدودیتهای سهمیه) تنظیم کند. در دریافت هشدارهای Firebase بیشتر بدانید.
برای اینکه بتوانید دادههایتان را با SQL BigQuery تجزیهوتحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان صادر کنید، فعال کردن صادر کردن دادههای Performance Monitoring به BigQuery را درنظر بگیرید.
Realtime Database
Realtime Database Security Rules خود را پیکربندی کنید تا از دسترسی ناخواسته به دادهها جلوگیری شود.
مطمئن شوید که برای مقیاسبندی آماده هستید. Realtime Database دارای سهمیه پیشفرض بهاندازه کافی بزرگ برای اکثر برنامهها است، اما برخیاز برنامهها ممکن است به ظرفیت اضافی نیاز داشته باشند.
قوانین proguard خود را پیکربندی کنید تا با Realtime Database کار کند.
Remote Config
مطمئن شوید که هیچکدام از قوانین آزمایشی Remote Config بر کاربران نسخه انتشار شما تأثیر نمیگذارد و پیشفرضهای مناسب سرور و درونبرنامه در برنامه شما توزیع شده است.
اگر نسخههای قبلی ناسازگار یا منسوخ شدند، پیکربندی پارامتر
minimum_versionدر Remote Config را درنظر بگیرید تا بتوانید از کاربران بخواهید یا آنها را ملزم کنید برنامهشان را بهروز کنند.