این سند شامل چک لیستی از بهترین شیوهها و ملاحظات قبل از راهاندازی یک برنامه Firebase در محیط عملیاتی است.
بهترین شیوههای عمومی برای انتشار
قبل از انتشار در محیط عملیاتی، مطمئن شوید که تمام تغییرات خود را در Firebase Local Emulator Suite (برای محصولات پشتیبانیشده) آزمایش کردهاید. آزمایش کامل میتواند به جلوگیری از اشتباهات پرهزینه کمک کند.
شروع به اجرای Firebase App Check برای هر سرویسی که از آن پشتیبانی میکند، کنید. App Check کمک میکند تا مطمئن شوید که فقط برنامههای واقعی شما میتوانند به سرویسها و منابع backend شما دسترسی داشته باشند.
چک لیست امنیتی عمومی فایربیس را مرور کنید.
از رولاوتهای Firebase Remote Config برای انتشار ایمن و تدریجی ویژگیها و بهروزرسانیهای جدید برای برنامه خود استفاده کنید.
اگر هنوز این کار را نکردهاید، نصب Firebase Crashlytics را در نظر بگیرید. این یک گزارشدهندهی خرابی سبک و بلادرنگ است که به شما کمک میکند مشکلات پایداری را که کیفیت برنامه شما را کاهش میدهند، ردیابی، اولویتبندی و برطرف کنید.
محدودیتهای طرح قیمتگذاری خود را بشناسید و هشدارهای بودجه تنظیم کنید
مطمئن شوید که پس از ورود به مرحله تولید، به محدودیتها و سهمیههای استفاده برخورد نمیکنید، به خصوص اگر از طرح رایگان Spark استفاده میکنید. ارتقا به طرح قیمتگذاری Pay-as-you-go Blaze را در نظر بگیرید.
هشدارهای بودجه را برای پروژه خود تنظیم کنید.
توجه داشته باشید که هشدارهای بودجه، سقف بودجه نیستند . وقتی به آستانهی تعیینشده نزدیک میشوید یا از آن عبور میکنید، یک هشدار برای شما ارسال میشود تا بتوانید در برنامه یا پروژهی خود اقدامی انجام دهید.
تنظیم هشدارها و اقدامات پیشرفته ، مانند توابعی که در پاسخ به هشدارها، صدور صورتحساب را غیرفعال میکنند، را در نظر بگیرید.
اگر از Firebase AI Logic ، App Hosting ، Cloud Functions for Firebase یا Firebase Extensions استفاده میکنید، اکیداً توصیه میکنیم که سقف بودجه را نیز تنظیم کنید ، که در صورت تجاوز پروژه شما از بودجه تعیین شده برای آن سرویس، سرویس مربوطه را متوقف میکند.
میزان مصرف خود را در داشبوردهای مخصوص محصول یا در داشبورد مرکزی «مصرف و پرداخت» در کنسول Firebase نظارت کنید.
مطمئن شوید که پروژهها و برنامههای Firebase شما از بهترین شیوهها پیروی میکنند
چه یک توسعهدهندهی تنها باشید و چه یک تیم در مقیاس سازمانی، مهم است که مطمئن شوید پروژهها، برنامهها و منابع Firebase شما محافظتشده و ایمن هستند و میتوانند با تغییرات در تیم شما تکامل یابند.
یادآوری این نکته مفید است که یک پروژه Firebase در واقع فقط یک پروژه Google Cloud است که سرویسها و پیکربندیهای Firebase برای آن فعال شدهاند. این بدان معناست که بسیاری از بهترین شیوههایی که Google Cloud توصیه میکند، برای Firebase نیز قابل اجرا هستند.
از پروژههای مختلف Firebase برای توسعه، آزمایش و تولید استفاده کنید.
سعی کنید مواجهه غیرمنتظره با پروژه مرتبط با برنامه تولیدی خود را محدود کنید. درباره تنظیم گردشهای کاری توسعه بیشتر بدانید.
از پروژههای مهم خود، به ویژه پروژههای مرتبط با برنامهی کاربردیتان، محافظت کنید.
از حق وثیقه پروژه برای محافظت در برابر حذف تصادفی پروژه استفاده کنید.
برای شناسایی آسانتر محیط تولید خود، یک برچسب "Prod" در کنسول Firebase اعمال کنید.
اگر هنوز این کار را نکردهاید، راهاندازی یک سازمان Google Cloud و اضافه کردن پروژههای Firebase خود به آن را در نظر بگیرید.
بیش از یک مالک به پروژههای Firebase خود اضافه کنید، به خصوص اگر پروژه شما در یک سازمان Google Cloud نیست . درباره زمان و نحوه تعیین مالک برای یک پروژه Firebase بیشتر بدانید.
اعضای پروژه (معروف به "اصول") را به جای تک تک، به صورت گروههای گوگل اضافه کنید.
استفاده از گروهها، تخصیص نقشها به اعضای تیم به صورت گروهی و همچنین مدیریت دسترسی افراد به پروژه Firebase شما را آسانتر میکند، به خصوص اگر اعضای تیم تغییر شغل دهند یا تیم را ترک کنند.
به هر عضو پروژه (معروف به "principle") سطح دسترسی مناسب به پروژهها و منابع Firebase خود را اعطا کنید. برای اطلاعات بیشتر به مدیریت دسترسی به پروژه با Firebase IAM مراجعه کنید.
مطمئن شوید که هر عضو پروژه مربوطه (معروف به "principle") تنظیمات خود را برای دریافت هشدارها در مورد محصولات خاص یا وضعیت پروژه (مانند تغییرات طرح صورتحساب یا محدودیتهای سهمیه) تنظیم کرده است. برای اطلاعات بیشتر به بخش دریافت هشدارهای Firebase مراجعه کنید.
همچنین میتوانید به صورت اختیاری «مخاطبین ضروری» پروژه خود را سفارشی کنید اگر میخواهید اعضای خاص یا اضافی پروژه اعلانها را دریافت کنند. این امر به ویژه برای اطمینان از اینکه علاوه بر مالک پروژه، افراد بیشتری در مورد تغییرات صورتحساب، قانونی و محصول اعلان دریافت میکنند، مفید است.
کلیدهای API فایربیس خود را فقط به APIهایی محدود کنید که باید در فهرست مجاز API آن کلید باشند. همچنین، اطلاعات مربوط به کلیدهای API را در چک لیست امنیتی فایربیس بررسی کنید.
سرویسهای خاصی که در برنامه شما استفاده میشوند را آماده کنید
هر محصول و خدماتی که در برنامه شما استفاده میشود، ممکن است هنگام استفاده در محیط عملیاتی، ملاحظات خاصی داشته باشد.
منطق هوش مصنوعی فایربیس
- برای استفاده از Firebase AI Logic به چک لیست تولید مراجعه کنید.
Google Analytics
شرایط مخاطبان را برای Google Analytics تعریف کنید تا از زمان راهاندازی برنامه، جمعآوری دادههای تحلیلی را آغاز کند.
فعال کردن امکان خروجی گرفتن از دادههای Google Analytics به BigQuery را در نظر بگیرید تا بتوانید دادههای خود را با BigQuery SQL تجزیه و تحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان خروجی بگیرید.
ویژگیهای کاربر را به اطلاعاتی محدود کنید که برای چرخه عمر کل برنامه شما مرتبط باشند. محدودیتی برای تعداد مواردی که میتوانید ایجاد کنید وجود دارد و نمیتوان آنها را بایگانی کرد.
تنظیمات مربوط به نقشهای Google Analytics را برای ویژگیها و حسابهای Google Analytics خود بررسی کنید. این مجوزها بهطور جداگانه از مجوزها و نقشهای IAM پروژه فایربیس مدیریت میشوند.
مطمئن شوید که شناسه فروشگاه برنامه و شناسه تیم شما (در صورت لزوم) در تنظیمات پروژه کنسول Firebase صحیح هستند.
App Check
مطمئن شوید که شناسه تیم شما در تنظیمات پروژه کنسول Firebase صحیح است.
اگر هنوز این کار را نکردهاید، شروع به اعمال Firebase App Check برای هر سرویسی که از آن پشتیبانی میکند، کنید. App Check کمک میکند تا مطمئن شوید که فقط برنامههای واقعی شما میتوانند به سرویسها و منابع backend شما دسترسی داشته باشند.
Authentication
هر ارائهدهندهای را که استفاده نمیکنید (بهویژه احراز هویت ناشناس) غیرفعال کنید.
اگر برنامه شما از ورود با گوگل استفاده میکند، صفحه رضایت OAuth خود را شخصیسازی کنید.
دامنه و فرستنده خود را برای سرویس ارسال ایمیل Authentication سفارشی کنید.
اگر از سرویسهای تأیید پیامکی Identity Platform استفاده میکنید، اجرای Firebase App Check را شروع کنید و یک سیاست منطقه پیامکی پیکربندی کنید تا از برنامه خود در برابر سوءاستفاده از پیامک محافظت کنید.
پیادهسازی مدیریت خطا در پلتفرمهای اپل برای خطاهای رایج Authentication .
یک هش SHA-1 برای گواهی امضای برنامه خود در تنظیمات پروژه کنسول Firebase اضافه کنید. اگر برنامه شما از ورود با شماره تلفن یا ورود با گوگل (که نیاز به کلاینت OAuth دارد) استفاده میکند، هش SHA-1 مورد نیاز است.
برای جلوگیری از استفاده غیرمجاز، کنترل دسترسی را برای دامنههای خود اضافه کنید. به طور خاص، در بخش 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 در برنامههای اپل در کنسول Firebase آپلود کنید. در صورت استفاده از گواهیهای APNS، مطمئن شوید که گواهی APNS نسخه اصلی شما آپلود شده است.
Cloud Storage
- Cloud Storage Security Rules خود را پیکربندی کنید تا از دسترسی ناخواسته به دادهها جلوگیری شود.
Crashlytics
مطمئن شوید که هر عضو پروژه مربوطه (معروف به "principle") تنظیمات خود را برای دریافت هشدارهای مربوط به Crashlytics یا وضعیت پروژه (مانند تغییرات طرح صورتحساب یا محدودیتهای سهمیه) تنظیم کرده است. برای اطلاعات بیشتر به بخش دریافت هشدارهای Firebase مراجعه کنید.
فعال کردن خروجی گرفتن از دادههای Crashlytics به BigQuery را در نظر بگیرید تا بتوانید دادههای خود را با BigQuery SQL تجزیه و تحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان خروجی بگیرید.
(فقط اندروید و iOS بومی) فعال کردن دستیار هوش مصنوعی در Crashlytics را در نظر بگیرید تا به شما در سرعت بخشیدن به درک علت خرابی و اقدامات لازم برای رفع آن کمک کند.
فایل dSYM را برای نسخههای آزمایشی جهت استفاده در Crashlytics آپلود کنید. مطمئن شوید که Xcode میتواند به طور خودکار dSYMها را پردازش کرده و فایلها را آپلود کند .
نقشهبرداری ProGuard را برای نسخههای آزمایشی جهت استفاده در Crashlytics آپلود کنید. آپلود با استفاده از Firebase CLI امکانپذیر است.
فایربیس را به Google Play متصل کنید تا دید جامعتری نسبت به سلامت برنامه اندروید خود داشته باشید. برای مثال، میتوانید گزارشهای خرابی برنامه خود را بر اساس مسیر Google Play فیلتر کنید، که به شما امکان میدهد داشبورد خود را بهتر روی نسخههای خاص متمرکز کنید.
برای ساختهایی که اندروید را هدف قرار میدهند و از IL2CPP استفاده میکنند، مطمئن شوید که نمادهای بومی را برای هر اجرای ساخت جداگانهای که امیدوارید نمادهایی برای آن داشته باشید، آپلود میکنید، صرف نظر از اینکه آیا تغییری در کد یا پیکربندی ایجاد شده است یا خیر.
Dynamic Links
- Dynamic Links منسوخ شدهاند، بنابراین توصیه میکنیم از این سرویس مهاجرت کنید. برای اطلاعات بیشتر به بخش سوالات متداول در مورد منسوخ شدن مراجعه کنید.
Firebase ML
به بخش «آمادهسازی برنامه Firebase ML Apple خود برای تولید» مراجعه کنید.
به بخش «آمادهسازی برنامه اندروید Firebase ML خود برای تولید» مراجعه کنید.
Performance Monitoring
مطمئن شوید که هر عضو پروژه مربوطه (معروف به "principle") تنظیمات خود را برای دریافت هشدارهای مربوط به Performance Monitoring یا وضعیت پروژه (مانند تغییرات طرح صورتحساب یا محدودیتهای سهمیه) تنظیم کرده است. برای اطلاعات بیشتر به بخش دریافت هشدارهای Firebase مراجعه کنید.
فعال کردن امکان ارسال دادههای Performance Monitoring به BigQuery را در نظر بگیرید تا بتوانید دادههای خود را با BigQuery SQL تجزیه و تحلیل کنید یا دادهها را برای استفاده با ابزارهای خودتان صادر کنید.
Realtime Database
Realtime Database Security Rules خود را پیکربندی کنید تا از دسترسی ناخواسته به دادهها جلوگیری شود.
مطمئن شوید که برای مقیاسپذیری آماده هستید. Realtime Database سهمیه پیشفرضی دارد که برای اکثر برنامهها به اندازه کافی بزرگ است، اما برخی از برنامهها ممکن است به ظرفیت اضافی نیاز داشته باشند.
قوانین proguard خود را برای کار با Realtime Database پیکربندی کنید.
Remote Config
- مطمئن شوید که هیچ یک از قوانین آزمایشی Remote Config بر کاربران نسخه آزمایشی شما تأثیری نداشته باشد و پیشفرضهای مناسب سرور و درونبرنامه در برنامه شما توزیع شده باشند.