תבניות Remote Config הן קבוצות של פרמטרים ותנאים בפורמט JSON שנוצרו עבור פרויקט Firebase. Remote Config מארגן את ההגדרות בתבניות שאפשר ליצור, לעדכן, לשמור גרסאות שלהן ולבטל שינויים שנעשו בהן.
בהתאם לארכיטקטורה שלכם, אתם יכולים ליצור ולנהל תבניות לקוח, תבניות שרת או את שניהם:
תבניות לקוח: הגדרות להצגה במופעים של אפליקציות לקוח בפלטפורמות Apple, Android, Web, Flutter, Unity ו-C++. תבניות בצד הלקוח תומכות בתנאים שמבוססים על Google Analytics קהלים, גרסאות אפליקציות, פלטפורמה, שפת המכשיר, מדינה, אחוזונים של משתמשים ואותות בהתאמה אישית.
תבניות שרת: הגדרות שרת לסביבות קצה עורפיות כמו Cloud Run, Cloud Functions for Firebase או שרתים מבוססי-קונטיינרים באמצעות Firebase Admin SDK ל-Node.js, Python, Go ו-Java. תבניות בצד השרת מעריכות פרמטרים בצד השרת עם זמן אחזור כמעט אפסי, באמצעות אותות מותאמים אישית בצד השרת והשקות באחוזים אקראיים.
השוואה בין תבניות בצד הלקוח לבין תבניות בצד השרת
תבניות של לקוחות ושרתים מתעדכנות באופן עצמאי בפרויקט Firebase. הטבלה הבאה מציגה את ההבדלים בין תבניות בצד הלקוח לבין תבניות בצד השרת:
| תכונה | תבניות של לקוחות | תבניות שרת |
|---|---|---|
| סביבות היעד | אפליקציות לקוח (Apple, Android, Web, Flutter, Unity, C++) | סביבות שרת (Cloud Run, Cloud Functions for Firebase, GKE, שירותים לקצה העורפי) |
| ערכות SDK נתמכות | ערכות Firebase SDK ללקוח | Firebase Admin SDK (Node.js, Python, Go, Java) |
| כלי ניהול | Firebase מסוף, Firebase CLI, API בארכיטקטורת REST, Firebase Admin SDK | מסוף Firebase |
| מיקום הקונסולה | פרמטרים ו תנאים | פרמטרים ו תנאים |
| הורדה של ברירות המחדל של התבנית | נתמך (XML ל-Android, PLIST ל-iOS, JSON לאינטרנט) | לא רלוונטי (ערכי ברירת מחדל מוגדרים בקוד השרת או בקצה העורפי) |
| מדריך מפורט | ניהול תבניות של לקוחות | ניהול תבניות של שרתים |
מחזור החיים של התבנית וניהול הגרסאות
בין אם אתם עובדים עם תבניות לקוח או עם תבניות שרת, Remote Config מספקת ניהול גרסאות מובנה וניהול מחזור חיים:
יצירה ומעקב של גרסאות
בכל פעם שמעדכנים פרמטרים או תנאים, Remote Config יוצר תבנית חדשה עם ניהול גרסאות של Remote Config ושומר את התבנית הקודמת כגרסה שאפשר לאחזר או לחזור אליה לפי הצורך. מספרי הגרסאות גדלים ברצף מהערך הראשוני שמאוחסן על ידי Remote Config.
כל התבניות כוללות שדה version שמכיל מטא-נתונים על הגרסה הספציפית הזו, כמו:
-
versionNumber: מספר הגרסה העוקב של התבנית. -
updateTime: חותמת הזמן שבה התבנית פורסמה. -
updateUser: כתובת האימייל או הזהות של המשתמש שביצע את העדכון. -
updateOrigin: איך השינוי בוצע (לדוגמה,CONSOLE,REST_APIאוADMIN_SDK_NODE). -
updateType: אופי השינוי (לדוגמה,INCREMENTAL_UPDATEאוFORCED_UPDATE).
מגבלות על גרסאות ושמירת נתונים
יש מגבלה כוללת של 300 גרסאות מאוחסנות לכל סוג תבנית (300 תבניות לקוח ו-300 תבניות שרת), כולל מספרי גרסאות מאוחסנים של תבניות שנמחקו. אם מפרסמים יותר מ-300 גרסאות של תבנית לכל סוג תבנית במהלך חיי הפרויקט, הגרסאות המוקדמות ביותר נמחקות, כך שיישארו לכל היותר 300 גרסאות מהסוג הזה.
רולבק
בכל שלב אפשר לחזור לכל גרסה של תבנית שנשמרה. כשמבטלים את השינויים, Remote Config יוצר גרסה חדשה שהתוכן שלה זהה לגרסה ההיסטורית שנבחרה. לדוגמה, אם מבצעים חזרה מגרסה 10 לגרסה 6, נוצרת גרסה 11 עם ההגדרות מגרסה 6.
ייבוא וייצוא
אתם יכולים להוריד את התבנית הפעילה כקובץ JSON ולפרסם אותה באותו פרויקט או בפרויקט אחר. היכולת הזו מאפשרת לכם:
- אחסון הגדרות התבניות בבקרת מקור (כמו Git).
- שילוב פריסות של הגדרות בצינורות עיבוד נתונים של CI/CD.
- קידום הגדרות בין שלבים (לדוגמה, מפרויקט פיתוח או Staging לייצור).
- העברת הגדרות בין פרויקטים.
פרמטרים וערכי פרמטרים שנוצרו במיוחד כווריאציות בניסוי A/B Testing לא נכללים בתבניות שמיוצאות.
ברירות מחדל של תבניות
באפליקציות לקוח, אפשר להוריד קבצים שמכילים ערכי ברירת מחדל של פרמטרים בפורמט XML, PLIST או JSON כדי לאגד אותם עם האפליקציה. הוראות מפורטות זמינות במאמר בנושא הורדה של ברירות מחדל של תבנית Remote Config.
השלבים הבאים
- תבניות לקוח: במאמר ניהול Remote Config תבניות לקוח וניהול גרסאות מוסבר איך לנהל, ליצור גרסאות, להוריד ולפרסם תבניות לקוח ב- .
- תבניות שרת: במאמר ניהול תבניות שרת, יצירת גרסאות ופרסוםRemote Config מוסבר איך לנהל תבניות שרת, ליצור גרסאות ולפרסם אותן.
- פרמטרים ותנאים: במאמר Remote Config מבט כולל על פרמטרים ותנאים מוסבר איך פרמטרים ותנאים פועלים.
- אוטומציה של עדכונים: במאמר שינוי Remote Config באופן פרוגרמטי מוסבר איך לשנות תבניות באופן פרוגרמטי.