این سند حاوی بازبینی روالهای مطلوب و ملاحظات قبلاز راهاندازی برنامه 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 خود را فقط به میاناهای برنامهسازی کاربردیای محدود کنید که باید در فهرست مجاز کلید میانای برنامهسازی کاربردی باشند. همچنین، اطلاعات مربوط به کلیدهای میانای برنامهسازی کاربردی را در بازبینه امنیتی Firebase بررسی کنید.
سرویسهای خاصی را که در برنامهتان استفاده میشود آماده کنید
هر محصول و سرویسی که در برنامهتان استفاده میشود ممکن است ملاحظات خاصی داشته باشد وقتی در دسته هدف استفاده میشود.
Firebase AI Logic
Google Analytics
شرایط مخاطب را برای Google Analytics تعریف کنید تا جمعآوری دادههای تجزیهوتحلیل از زمان راهاندازی برنامهتان شروع شود.
صادر کردن دادههای Google Analytics به BigQuery را فعال کنید تا بتوانید دادههایتان را با SQL BigQuery تجزیهوتحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان صادر کنید.
ویژگیهای کاربر را به اطلاعاتی محدود کنید که برای چرخه حیات کل برنامهتان مرتبط باشد. محدودیتی برای تعداد ویژگیهایی که میتوانید ایجاد کنید وجود دارد، و نمیتوان آنها را بایگانی کرد.
تنظیمات مربوط به 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 پیادهسازی کنید.
درهمسازی SHA-1 نسخه پخش را برای گواهی امضای برنامهتان در تنظیمات پروژه کنسول Firebase اضافه کنید. اگر برنامهتان از ورود به سیستم با شماره تلفن یا «ورود به سیستم با 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 را فعال کنید تا بتوانید دادههایتان را با SQL BigQuery تجزیهوتحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان صادر کنید.
«کلید اصالتسنجی 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 را فعال کنید تا بتوانید دادههایتان را با SQL BigQuery تجزیهوتحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان صادر کنید.
(فقط 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 بیشتر بدانید.
صادر کردن دادههای Performance Monitoring به BigQuery را فعال کنید تا بتوانید دادههایتان را با SQL BigQuery تجزیهوتحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان صادر کنید.
Realtime Database
Realtime Database Security Rules خود را پیکربندی کنید تا از دسترسی ناخواسته به دادهها جلوگیری شود.
مطمئن شوید که برای مقیاسبندی آماده هستید. Realtime Database دارای سهمیه پیشفرض بهاندازه کافی بزرگ برای اکثر برنامهها است، اما برخیاز برنامهها ممکن است به ظرفیت بیشتری نیاز داشته باشند.
قوانین proguard را پیکربندی کنید تا با Realtime Database کار کند.
Remote Config
مطمئن شوید که هیچکدام از قوانین آزمایشی Remote Config بر کاربران نسخه پخش تأثیر نمیگذارد و پیشفرضهای مناسب سرور و درونبرنامه در برنامهتان توزیع شده است.
پیکربندی پارامتر
minimum_versionدر Remote Config را مدنظر قرار دهید تا بتوانید درصورت ناسازگار شدن یا منسوخ شدن نسخههای قبلی، از کاربران بخواهید یا آنها را ملزم کنید برنامهشان را بهروز کنند.