המסמך הזה מכיל רשימת משימות של שיטות מומלצות ושיקולים לפני השקת אפליקציית Firebase בסביבת הייצור.
שיטות מומלצות כלליות להפצה
חשוב לוודא שבדקתם את כל השינויים בFirebase Local Emulator Suite (במוצרים נתמכים) לפני הפריסה בסביבת הייצור. בדיקה יסודית יכולה למנוע טעויות יקרות.
מתחילים לאכוף את Firebase App Check בכל שירות שתומך בכך. App Check עוזר לוודא שרק האפליקציות האמיתיות שלכם יכולות לגשת לשירותי הקצה העורפי ולמשאבים.
משתמשים בהשקות של Firebase Remote Config כדי להשיק תכונות ועדכונים חדשים באפליקציה באופן בטוח והדרגתי.
אם עדיין לא עשיתם את זה, כדאי להגדיר Firebase Crashlytics. זהו כלי קל משקל לדיווח על קריסות בזמן אמת, שעוזר לכם לעקוב אחרי בעיות יציבות שפוגעות באיכות האפליקציה, לתעדף אותן ולתקן אותן.
הכרת המגבלות של תוכנית התמחור והתשלומים והגדרת התראות לגבי תקציב
חשוב לוודא שלא חורגים ממגבלות השימוש ומהמכסות אחרי המעבר לסביבת הייצור, במיוחד אם אתם משתמשים בתוכנית Spark ללא עלות. מומלץ לשדרג למינוי Blaze בתשלום לפי שימוש.
הגדירו התראות לגבי תקציב בפרויקט.
חשוב לציין שהתראות על תקציב לא מגבילות את התקציב, אלא רק שולחות התראות. התראה תשלח לכם הודעות כשתתקרבו לסף שהגדרתם או תחצו אותו, כדי שתוכלו ליצור קמפיינים באפליקציה או בפרויקט.
כדאי להגדיר התראות ופעולות מתקדמות, כמו פונקציות שישביתו את החיוב בתגובה להתראות.
אם אתם משתמשים ב-Firebase AI Logic, ב-Firebase App Hosting, ב-Cloud Functions for Firebase וב-Firebase Extensions, מומלץ מאוד להגדיר תקרות הוצאה, שישהו את השירות הרלוונטי אם הפרויקט יגיע לתקציב שהוגדר לאותו שירות.
אפשר לעקוב אחרי השימוש במרכזי הבקרה הספציפיים למוצר או במרכז הבקרה המרכזי Usage and billing במסוף Firebase.
חשוב לוודא שהפרויקטים והאפליקציות ב-Firebase פועלים לפי השיטות המומלצות
לא משנה אם אתם מפתחים בודדים או צוות בגודל של ארגון, חשוב לוודא שפרויקטים ב-Firebase, האפליקציות והמשאבים שלכם מוגנים ומאובטחים, ושהם יכולים להתפתח עם השינויים בצוות.
חשוב לזכור שפרויקט Firebase הוא בעצם פרויקט ב-Google Cloud שמופעלים בו שירותים והגדרות של Firebase. לכן, הרבה מהשיטות המומלצות של Google Cloud רלוונטיות גם ל-Firebase.
משתמשים בפרויקטים שונים ב-Firebase לפיתוח, לבדיקה ולייצור.
מומלץ לצמצם את החשיפה הלא צפויה לפרויקט שמשויך לאפליקציית הייצור. מידע נוסף על הגדרת תהליכי עבודה לפיתוח
הגנה על הפרויקטים החשובים, במיוחד על הפרויקט שמשויך לאפליקציה שלכם בסביבת הייצור.
כדי למנוע מחיקה בטעות של פרויקטים, מומלץ להשתמש במנעולים למניעת מחיקה של פרויקטים.
כדי לזהות בקלות את סביבת הייצור, אפשר להחיל תג Prod במסוף Firebase.
אם עדיין לא עשיתם את זה, כדאי להגדיר ארגון ב-Google Cloud ולהוסיף אליו את פרויקטי Firebase שלכם.
הוסיפו יותר מבעלים אחד לפרויקטים ב-Firebase, במיוחד אם הפרויקט לא נמצא בארגון ב-Google Cloud. מתי ואיך מקצים בעלים לפרויקט ב-Firebase
הוסיפו חברים לפרויקט (שנקראים גם "חשבונות משתמשים") כקבוצות Google במקום בנפרד.
השימוש בקבוצות מקל על הקצאת תפקידים לחברי צוות בכמות גדולה, וגם על ניהול הגישה לפרויקט Firebase, במיוחד אם חברי הצוות מתחלפים או עוזבים.
מעניקים לכל חבר בפרויקט (שנקרא גם "גורם") את רמת הגישה המתאימה לפרויקטים ולמשאבים שלכם ב-Firebase. מידע נוסף זמין במאמר ניהול הגישה לפרויקט באמצעות Firebase IAM.
חשוב לוודא שכל חבר צוות בפרויקט (שנקרא גם 'בעל עניין') מגדיר את ההעדפות שלו לקבלת התראות לגבי מוצרים ספציפיים או סטטוס הפרויקט (למשל שינויים בתוכנית החיוב או במגבלות המכסה). מידע נוסף זמין במאמר בנושא קבלת התרעות מ-Firebase.
אם רוצים שחברי פרויקט ספציפיים או נוספים יקבלו התראות, אפשר גם להתאים אישית את אנשי הקשר החיוניים של הפרויקט. כך אפשר לוודא שגם משתמשים אחרים, ולא רק ה-Project Owner של הפרויקט, יקבלו התראות על שינויים בחיוב, שינויים משפטיים ושינויים במוצר.
הגבלת מפתחות Firebase API רק לממשקי ה-API שצריכים להיות ברשימת ההיתרים של מפתח ה-API. כדאי גם לעיין במידע על מפתחות API ברשימת המשימות לאבטחה של Firebase.
הכנת שירותים ספציפיים שבהם משתמשים באפליקציה
לכל מוצר ושירות שאתם משתמשים בהם באפליקציה יכולים להיות שיקולים ספציפיים כשמשתמשים בהם בסביבת הייצור.
Firebase AI Logic
- אפשר לעיין ברשימת המשימות להכנה לשימוש ב-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 שירות שליחת האימיילים.
אם אתם משתמשים בשירותי האימות ב-SMS של Identity Platform, התחילו לאכוף את Firebase App Check והגדירו מדיניות אזורית ל-SMS כדי להגן על האפליקציה מפני ניצול לרעה של SMS.
מטמיעים טיפול בשגיאות בפלטפורמות של אפל כדי לטפל בשגיאות נפוצות ב-Authentication.
מוסיפים את הגיבוב SHA-1 של גרסת ההפצה של אישור החתימה של האפליקציה בהגדרות הפרויקט במסוף Firebase. צריך להזין את גיבוב ה-SHA-1 אם באפליקציה שלכם יש אפשרות להיכנס באמצעות מספר טלפון או באמצעות כניסה באמצעות חשבון Google (שמחייב לקוח OAuth).
מוסיפים בקרת גישה לדומיינים כדי למנוע שימוש לא מורשה. באופן ספציפי, צריך לאפשר גישה לדומיין הייצור בקטע Authentication במסוף Firebase (חשוב במיוחד אם משתמשים במוצרים שמסתמכים על Firebase Security Rules).
Cloud Firestore
מגדירים את Cloud Firestore Security Rules כדי למנוע גישה לא מכוונת לנתונים.
משתמשים ב-ProGuard לכיווץ קוד בגרסת ה-build להפצה. בלי ProGuard, ה-Cloud Firestore SDK והתלויות שלו יכולים להגדיל את גודל ה-APK.
Cloud Messaging
כדאי להפעיל את הייצוא של נתוני Cloud Messaging אל BigQuery כדי שתוכלו לנתח את הנתונים באמצעות BigQuery SQL או לייצא אותם לשימוש בכלים שלכם.
מעלים את מפתח האימות של APNS עבור Cloud Messaging באפליקציות של אפל במסוף Firebase. אם משתמשים באישור APNS, צריך לוודא שאישור ה-APNS של סביבת הייצור הועלה.
כדאי להפעיל את יומני הביקורת של Cloud ב-Cloud Messaging כדי ליצור יומני ביקורת שבהם מתועדים אירועי גישה למשאבי Google Cloud ופעילויות אדמין שנעשות בהם.
חשוב לעדכן מעת לעת לגרסה החדשה ביותר של ה-SDK כדי להתעדכן בתכונות חדשות ובעדכוני אבטחה.
בשרת האפליקציה, פועלים לפי השיטות המומלצות לניהול טוקנים של רישום ב-Cloud Messaging. שמרו את אסימוני הרישום עם חותמת זמן, עדכנו אותם כשיש שינויים והסירו אסימונים ישנים (שלא היו פעילים במשך יותר מחודש) כדי להבטיח דיווח תקין על מסירה וטירגוט יעיל של הודעות.
כדאי לפעול לפי השיטות המומלצות לשליחת הודעות Cloud Messaging בהיקף גדול. כדי להימנע מעומסי תנועה וממגבלות קצב, צריך להשתמש ב-HTTP v1 API או ב-Firebase Admin SDK, להטמיע השהיה מעריכית לפני ניסיון חוזר (exponential backoff) עם תנודות (jitter) לניסיונות חוזרים, ולכבד את הכותרות של
Retry-After.
Cloud Storage
- מגדירים את Cloud Storage Security Rules כדי למנוע גישה לא מכוונת לנתונים.
Crashlytics
חשוב לוודא שכל חבר צוות בפרויקט (שנקרא גם "הגורם העיקרי") מגדיר את ההעדפות שלו לקבלת התראות לגבי Crashlytics או מצב הפרויקט (למשל שינויים בתוכנית החיוב או במגבלות המכסה). מידע נוסף על קבלת התראות מ-Firebase
כדאי להפעיל את הייצוא של נתוני Crashlytics אל BigQuery כדי שתוכלו לנתח את הנתונים באמצעות BigQuery SQL או לייצא אותם לשימוש בכלים שלכם.
(Android ו-iOS מקוריים בלבד) כדאי להפעיל את הכלי מבוסס ה-AI ב-Crashlytics כדי להבין מהר יותר למה קרתה קריסה ומה לעשות בקשר לזה.
מעלים את קובץ ה-dSYM של גרסאות ה-build להפצה לשימוש ב-Crashlytics. מוודאים ש-Xcode יכול לעבד באופן אוטומטי קובצי dSYM ולהעלות את הקבצים.
העלאה של מיפוי ProGuard לגרסאות build להפצה לשימוש ב-Crashlytics. אפשר להעלות באמצעות ה-CLI של Firebase.
מקשרים את Firebase אל Google Play כדי לקבל תמונה מפורטת יותר של תקינות האפליקציה ל-Android. לדוגמה, אתם יכולים לסנן את דוחות הקריסה של האפליקציה לפי מסלול Google Play, וכך להתמקד בגרסאות build ספציפיות בלוח הבקרה.
בגרסאות build שמטרגטות את Android ומשתמשות ב-IL2CPP, חשוב לוודא שאתם מעלים סמלים מקוריים לכל הפעלה של גרסת build שאתם רוצים שיהיו לה סמלים, גם אם לא היו שינויים בקוד או בהגדרות.
Dynamic Links
- Dynamic Links הוצא משימוש, ולכן מומלץ להפסיק להשתמש בשירות. מידע נוסף זמין בשאלות הנפוצות בנושא הוצאה משימוש.
Firebase ML
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 ניסיוניים לא משפיעים על משתמשי הגרסה, ושהגדרות ברירת המחדל המתאימות של השרת ושל האפליקציה מופצות באפליקציה.
כדאי להגדיר פרמטר
minimum_versionב-Remote Config כדי שתוכלו לבקש מהמשתמשים לעדכן את האפליקציה או לדרוש מהם לעשות זאת, אם גרסאות קודמות לא תואמות או הוצאו משימוש.