פרמטרים ותנאים של הגדרת תצורה מרחוק


אפשר להגדיר תבניות גם לתרחישי לדוגמה של לקוחות וגם לתרחישי לדוגמה של שרתים. תבניות הלקוח מוצגות לכל מכונות האפליקציות שמטמיעות את ערכות ה-SDK של לקוחות Firebase ל-Remote Config, כולל אפליקציות ל-Android, ל-Apple, לאינטרנט, ל-Unity, ל-Flutter ול-C++‎. פרמטרים וערכים של Remote Config מתבניות ספציפיות לשרת מוצגים להטמעות של Remote Config (כולל Cloud Run ו-Cloud Functions) שמשתמשות ב-Firebase Admin Node.js SDK בגרסה 12.1.0 ואילך.

כשמשתמשים במסוף Firebase או בממשקי ה-API לקצה העורפי של Remote Config, מגדירים פרמטר אחד או יותר (זוגות מפתח/ערך) ומספקים ערכים שמוגדרים כברירת מחדל באפליקציה עבור הפרמטרים האלה. אפשר לשנות את ערכי ברירת המחדל בתוך האפליקציה על ידי הגדרת ערכי פרמטרים. מפתחות פרמטרים וערכים של פרמטרים הם מחרוזות, אבל אפשר להמיר ערכים של פרמטרים לסוגי נתונים אחרים כשמשתמשים בערכים האלה באפליקציה.

אפשר ליצור ערכי ברירת מחדל חדשים לפרמטרים, וגם ערכים מותנים שמשמשים לטירגוט קבוצות של מכונות אפליקציה, באמצעות מסוף Firebase, ‏ Admin SDK או Remote Config REST API. בכל פעם שמעדכנים את ההגדרות במסוף Firebase, מערכת Firebase יוצרת ומפרסמת גרסה חדשה של התבנית Remote Config. הגרסה הקודמת נשמרה כדי לאפשר לך לאחזר או לחזור למצב הקודם לפי הצורך. הפעולות האלה זמינות במסוף Firebase, ב-Firebase Admin SDK וב-API ל-REST, ומתוארות בהרחבה במאמר ניהול גרסאות של תבניות Remote Config.

במדריך הזה נסביר מהם פרמטרים, תנאים, כללים, ערכים מותנים ואיך ערכי פרמטרים שונים מקבלים עדיפות בקצה העורפי Remote Config ובאפליקציה שלכם. בנוסף, מופיעים פרטים על סוגי הכללים שמשמשים ליצירת תנאים.

תנאים, כללים וערכים מותנים

תנאי משמש לטירגוט קבוצה של מופעי אפליקציה. התנאים מורכבים מכלל אחד או יותר, וכל אחד מהם חייב להניב את הערך true כדי שהתנאי יניב את הערך true למכונה נתונה של האפליקציה. אם הערך של כלל לא מוגדר (לדוגמה, כשאין ערך זמין), הערך של הכלל יהיה false.

לדוגמה, אפשר ליצור פרמטר שמגדיר את שם המודל ואת מחרוזת הגרסה של מודל שפה גדול (LLM), ולהציג תשובות ממודלים שונים על סמך כללי אותות מותאמים אישית. בתרחיש לדוגמה הזה, אפשר להשתמש בגרסה יציבה של מודל בתור ערך ברירת המחדל להצגת רוב הבקשות, ולהשתמש באות המותאם אישית כדי להשתמש במודל ניסיוני בתגובה לבקשות של לקוחות לצורך בדיקה.

לפרמטר יכולים להיות כמה ערכים מותנים שמשתמשים בתנאים שונים, ופרמטרים יכולים לשתף תנאים בתוך פרויקט. בכרטיסייה 'פרמטרים' במסוף Firebase אפשר לראות את אחוז השליפה לכל אחד מהערכים המותנים של כל פרמטר. המדד הזה מציין את אחוז הבקשות ב-24 השעות האחרונות שקיבלו כל ערך.

העדיפות של ערך הפרמטר

יכול להיות שפרמטר מסוים ישויך אליו כמה ערכים מותנים. הכללים הבאים קובעים איזה ערך מאוחזר מהתבנית Remote Config, ואיזה ערך משמש במכונה נתונה של האפליקציה בנקודת זמן מסוימת:

  1. קודם כול, מוחלים ערכים מותנים על כל התנאים שהערך שלהם הוא true בבקשת לקוח נתונה. אם מספר תנאים מקבלים את הערך true, התנאי הראשון (הלמעלה) שמוצג בממשק המשתמש של מסוף Firebase מקבל קדימות, והערכים המותנים שמשויכים לתנאי הזה מסופקים כשאפליקציה מאחזרת ערכים מהקצה העורפי. כדי לשנות את העדיפות של התנאים, גוררים ומשחררים אותם בכרטיסייה תנאים.

  2. אם אין ערכים מותנים עם תנאים שמתקבלים כ-true, ערך ברירת המחדל של Remote Config מסופק כשאפליקציה מאחזרת ערכים מהקצה העורפי. אם פרמטר לא קיים בקצה העורפי, או אם ערך ברירת המחדל מוגדר כ-Use in-app default, לא יסופק ערך לפרמטר הזה כשאפליקציה תאחזר ערכים.

באפליקציה שלכם, ערכי הפרמטרים מוחזרים באמצעות methods של get בהתאם לרשימת העדיפויות של האפליקציות

  1. אם ערך אוחזר מהקצה העורפי ולאחר מכן הופעל, האפליקציה תשתמש בערך שאוחזר. ערכי הפרמטרים שהופעלו הם קבועים.
  2. אם לא אוחזר ערך מהקצה העורפי, או אם ערכים שאוחזרו מהקצה העורפי של Remote Config לא הופעלו, האפליקציה תשתמש בערך ברירת המחדל באפליקציה.

    למידע נוסף על קבלה והגדרה של ערכי ברירת מחדל, ראו הורדת ערכי ברירת מחדל של תבנית Remote Config.

  3. אם לא הגדרתם ערך ברירת מחדל באפליקציה, האפליקציה תשתמש בערך סטטי של סוג (למשל 0 עבור int ו-false עבור boolean).

בתרשים הזה מוצג סיכום של אופן הקצאת העדיפות לערכי הפרמטרים בקצה העורפי של Remote Config ובאפליקציה:

תרשים שמראה את הזרימה המתוארת ברשימות המסודרות שלמעלה

סוגי הנתונים של ערכי הפרמטרים

בעזרת Remote Config אפשר לבחור סוג נתונים לכל פרמטר, ומערכת Analytics מאמתת את כל הערכים של Remote Config בהתאם לסוג הזה לפני עדכון התבנית. סוג הנתונים נשמר ומוחזר בבקשה מסוג getRemoteConfig.

סוגי הנתונים הנתמכים הם:

  • String
  • Boolean
  • Number
  • JSON

בממשק המשתמש של מסוף Firebase, אפשר לבחור את סוג הנתונים מהתפריט הנפתח לצד מפתח הפרמטר. ב-API ל-REST, אפשר להגדיר את הסוגים באמצעות השדה value_type באובייקט הפרמטר.

קבוצות פרמטרים

באמצעות Remote Config אפשר לקבץ את הפרמטרים כדי ליצור ממשק משתמש מאורגן יותר ולשפר את נוחות השימוש.

לדוגמה, נניח שאתם צריכים להפעיל או להשבית שלושה סוגים שונים של אימות במהלך ההשקה של תכונה חדשה להתחברות. באמצעות Remote Config, אפשר ליצור את שלושת הפרמטרים כדי להפעיל את הסוגים הרצויים, ולאחר מכן לארגן אותם בקבוצה בשם 'התחברות חדשה', בלי צורך להוסיף תחיליות או מיון מיוחד.

אפשר ליצור קבוצות פרמטרים באמצעות מסוף Firebase או באמצעות ה-API ל-REST של Remote Config. לכל קבוצת פרמטרים שיוצרים יש שם ייחודי בתבנית Remote Config. כשיוצרים קבוצות של פרמטרים, חשוב לזכור:

  • אפשר לכלול פרמטרים בקבוצה אחת בלבד בכל רגע נתון, ומפתח פרמטר עדיין צריך להיות ייחודי בכל הפרמטרים.
  • השמות של קבוצות הפרמטרים מוגבלים ל-256 תווים.
  • אם אתם משתמשים גם ב-API ל-REST וגם במסוף Firebase, חשוב לוודא שהלוגיקה של ה-API ל-REST מעודכנת כדי לטפל בקבוצות של פרמטרים במהלך הפרסום.

יצירה או שינוי של קבוצות פרמטרים באמצעות מסוף Firebase

אפשר לקבץ פרמטרים בכרטיסייה Parameters במסוף Firebase. כדי ליצור או לשנות קבוצה:

  1. בוחרים באפשרות ניהול קבוצות.
  2. מסמנים את התיבות של הפרמטרים שרוצים להוסיף ובוחרים באפשרות העברה לקבוצה.
  3. בוחרים קבוצה קיימת או יוצרים קבוצה חדשה על ידי הזנת שם ותיאור ובחירה באפשרות יצירת קבוצה חדשה. אחרי שמשמרים קבוצה, אפשר לפרסם אותה באמצעות הלחצן פרסום השינויים.

סוגי כללי תנאים

סוגי הכללים הבאים נתמכים במסוף Firebase. תכונות שוות ערך זמינות ב-API ל-REST ב-Remote Config, כפי שמפורט בחומר העזר בנושא ביטויים מותנים.

סוג הכלל מפעילים ערכים הערה
אפליקציה == בוחרים מתוך רשימת מזהי האפליקציות של האפליקציות שמשויכות לפרויקט ב-Firebase. כשאתם מוסיפים אפליקציה ל-Firebase, אתם מזינים מזהה חבילה או שם חבילה ל-Android שמגדירים מאפיין שמוצג בתור מזהה אפליקציה בכללים של Remote Config.

כך משתמשים במאפיין הזה:
  • לפלטפורמות של Apple: משתמשים ב-CFBundleIdentifier של האפליקציה. תוכלו למצוא את Bundle Identifier בכרטיסייה General של היעד הראשי של האפליקציה ב-Xcode.
  • ב-Android: משתמשים ב-applicationId של האפליקציה. אפשר למצוא את applicationId בקובץ build.gradle ברמת האפליקציה.
גרסת אפליקציה לערכים של מחרוזות:
התאמה מדויקת,
מכיל,
לא מכיל,
מכיל ביטוי רגולרי

לערכים מספריים:
<,‏ <=, ‏ =,‏ !=,‏ >,‏ >=

מציינים את הגרסאות של האפליקציה שרוצים לטרגט.

לפני שמשתמשים בכלל הזה, צריך להשתמש בכלל מזהה אפליקציה כדי לבחור אפליקציה ל-Android/Apple שמשויכת לפרויקט Firebase.

לפלטפורמות של Apple: משתמשים ב-CFBundleShortVersionString של האפליקציה.

הערה: צריך לוודא שבאפליקציה של Apple נעשה שימוש ב-SDK של פלטפורמת Firebase בגרסה 6.24.0 ואילך, כי CFBundleShortVersionString לא נשלח בגרסאות קודמות (אפשר לעיין בנתוני הגרסה).

ב-Android: משתמשים בערך versionName של האפליקציה.

השוואות המחרוזות של הכלל הזה תלויות אותיות רישיות. כשמשתמשים באופרטור תואם בדיוק, מכיל, לא מכיל או מכיל ביטוי רגולרי (regex), אפשר לבחור כמה ערכים.

כשמשתמשים באופרטור contains regex, אפשר ליצור ביטויים רגולריים בפורמט RE2. הביטוי הרגולרי יכול להתאים לכל המחרוזת של גרסת היעד או לחלק ממנה. אפשר גם להשתמש בעוגנים ^ ו-$ כדי להתאים להתחלה, לסוף או לכל המחרוזת היעד.

מספר build לערכי מחרוזת:
תואם בדיוק,
מכיל,
לא מכיל,
ביטוי רגולרי

לערכים מספריים:
=, ≠, >, ≥, <, ≤

מציינים את גרסאות ה-build של האפליקציה שרוצים לטרגט.

לפני שמשתמשים בכלל הזה, צריך להשתמש בכלל מזהה אפליקציה כדי לבחור אפליקציה ל-Apple או ל-Android שמשויכת לפרויקט ב-Firebase.

המפעיל הזה זמין רק לאפליקציות ל-Apple ול-Android. היא תואמת ל-CFBundleVersion של האפליקציה ל-Apple, ול-versionCode ל-Android. השוואות המחרוזות בכלל הזה תלויות-רישיות.

כשמשתמשים באופרטורים תואם בדיוק, מכיל, לא מכיל או מכיל ביטוי רגולרי (regex), אפשר לבחור כמה ערכים.

כשמשתמשים באופרטור contains regex אפשר ליצור ביטויים רגולריים בפורמט RE2. הביטוי הרגולרי יכול להתאים לכל המחרוזת של גרסת היעד או לחלק ממנה. אפשר גם להשתמש בעוגנים ^ ו-$ כדי להתאים להתחלה, לסוף או לכל המחרוזת של היעד.

פלטפורמה == iOS
Android
אינטרנט
 
מערכת הפעלה ==

מציינים את מערכות ההפעלה שרוצים לטרגט.

לפני שמשתמשים בכלל הזה, צריך להשתמש בכלל מזהה אפליקציה כדי לבחור אפליקציית אינטרנט שמשויכת לפרויקט Firebase.

הכלל הזה מקבל את הערך true למכונה נתונה של אפליקציית אינטרנט אם מערכת ההפעלה והגרסה שלה תואמות לערך יעד ברשימה שצוינה.
דפדפן ==

מציינים את הדפדפנים שאליהם רוצים לטרגט.

לפני שמשתמשים בכלל הזה, צריך להשתמש בכלל מזהה אפליקציה כדי לבחור אפליקציית אינטרנט שמשויכת לפרויקט Firebase.

הכלל הזה מקבל את הערך true למכונה נתונה של אפליקציית אינטרנט אם הדפדפן והגרסה שלו תואמים לערך יעד ברשימת הערכים שצוינה.
קטגוריית מכשיר אינו, אינו נייד הכלל הזה קובע אם המכשיר שממנו ניגשים לאפליקציית האינטרנט הוא נייד או לא נייד (מחשב או קונסולה). סוג הכלל הזה זמין רק לאפליקציות אינטרנט.
שפות נמצא ב- בוחרים שפה אחת או יותר. הערך של הכלל הוא true למופע מסוים של אפליקציה, אם המופע של האפליקציה מותקן במכשיר שמשתמש באחת מהשפות המפורטות.
ארץ/אזור נמצא ב- בוחרים אזור או מדינה אחת או יותר. הכלל הזה מקבל את הערך true למכונה נתונה של אפליקציה אם המכונה נמצאת באחת מהמדינות או מהאזורים שמפורטים. קוד המדינה של המכשיר נקבע לפי כתובת ה-IP של המכשיר בבקשה, או לפי קוד המדינה שנקבע על ידי Firebase Analytics (אם נתוני Analytics משותפים עם Firebase).
קהלים של משתמשים כולל לפחות גיליון אחד בוחרים קהל אחד או יותר מתוך הרשימה של Google Analytics קהלים שהגדרתם לפרויקט.

הכלל הזה מחייב כלל של מזהה אפליקציה כדי לבחור אפליקציה שמשויכת לפרויקט Firebase שלכם.

הערה: מאחר שקהלים רבים מסוג Analytics מוגדרים על סמך אירועים או מאפייני משתמשים, שיכולים להתבסס על הפעולות של משתמשי האפליקציה, יכול להיות שיחלוף זמן מה עד שכלל משתמש בקהל ייכנס לתוקף במכונה נתונה של האפליקציה.

מאפיין משתמש לערכים של מחרוזות:
מכיל,
לא מכיל,
תואם בדיוק,
מכיל ביטוי רגולרי

לערכים מספריים:
=, ≠, >, ≥, <, ≤

הערה: בצד הלקוח, אפשר להגדיר רק ערכים של מחרוזות למאפייני משתמשים. בתנאים שמשתמשים באופרטורים מספריים, Remote Config ממירה את הערך של מאפיין המשתמש התואם למספר שלם/צף.
בוחרים מתוך רשימה של מאפייני משתמש Google Analytics זמינים. במאמר Remote Config ומאפייני משתמש מוסבר איך משתמשים במאפייני משתמש כדי להתאים אישית את האפליקציה לפלחים ספציפיים מאוד של בסיס המשתמשים.

מידע נוסף על מאפייני משתמשים זמין במדריכים הבאים:

כשמשתמשים באופרטורים תואם בדיוק, מכיל, לא מכיל או מכיל ביטוי רגולרי (regex), אפשר לבחור כמה ערכים.

כשמשתמשים באופרטור contains regex אפשר ליצור ביטויים רגולריים בפורמט RE2. הביטוי הרגולרי יכול להתאים לכל מחרוזת הגרסה של היעד או לחלק ממנה. אפשר גם להשתמש בעוגנים ^ ו-$ כדי להתאים להתחלה, לסוף או לכל המחרוזת של היעד.

הערה: מאפייני משתמשים שנאספים באופן אוטומטי לא זמינים כשיוצרים תנאי Remote Config.
משתמש באחוז אקראי פס ההזזה (במסוף Firebase. ב-API ל-REST נעשה שימוש באופרטורים <=,‏ > ו-between). 0-100

משתמשים בשדה הזה כדי להחיל שינוי על דגימה אקראית של מכונות אפליקציה (בגודל דגימה של עד 0 .0001%), באמצעות ווידג'ט פס ההזזה כדי לפלח משתמשים (מכונות אפליקציה) שמאוחזרים באופן אקראי לקבוצות.

כל מכונה של אפליקציה ממופה באופן קבוע למספר שלם או חלקי אקראי, בהתאם לseed שהוגדר באותו פרויקט.

המערכת תשתמש במפתח ברירת המחדל (שמוצג בתור Edit seed במסוף Firebase) אלא אם תשנו את ערך המקור. כדי להחזיר כלל לשימוש במפתח ברירת המחדל, צריך למחוק את השדה Seed.

כדי לטפל באופן עקבי באותם מופעים של אפליקציה בטווחי אחוזים נתונים, צריך להשתמש באותו ערך מקור בכל התנאים. לחלופין, אפשר לבחור קבוצה חדשה של מכונות אפליקציה שתוקצה באופן אקראי לפי טווח אחוזים נתון, על ידי ציון זרע חדש.

לדוגמה, כדי ליצור שני תנאים קשורים שחלים על 5% לא חופפים של משתמשי האפליקציה, אפשר להגדיר תנאי אחד שיתאים לאחוז שבין 0% ל-5% ולהגדיר תנאי אחר שיתאים לטווח שבין 5% ל-10%. כדי לאפשר למשתמשים מסוימים להופיע באופן אקראי בשתי הקבוצות, צריך להשתמש בערכים שונים של זרעים לכללים בכל תנאי.

פלח שיובא נמצא ב- בוחרים פלח אחד או יותר שיובאו. כדי להשתמש בכלל הזה, צריך להגדיר פלחים מיובאים בהתאמה אישית.
תאריך/שעה לפני ואחרי תאריך ושעה ספציפיים, לפי אזור הזמן של המכשיר או לפי אזור זמן ספציפי, למשל '(GMT+11) שעון סידני'. השוואה בין השעה הנוכחית לבין זמן האחזור של המכשיר.
פתיחה ראשונה לפני ואחרי תאריך ושעה ספציפיים, באזור הזמן שצוין.

ההתאמה מתבצעת למשתמשים שפותחים את האפליקציה המטורגטת בפעם הראשונה בטווח הזמן שצוין.

נדרשות ערכות ה-SDK הבאות:

  • Firebase SDK ל-Google Analytics
  • ‏Apple platforms SDK v9.0.0 ואילך או Android SDK v21.1.1 ואילך (Firebase BoM v30.3.0 ואילך)
מזהה ההתקנה נמצא ב- מציינים מזהה התקנה אחד או יותר (עד 50) לטירגוט. הכלל הזה מקבל את הערך true להתקנה נתונה אם המזהה של ההתקנה הזו נמצא ברשימת הערכים המופרדים בפסיקים.

במאמר אחזור מזהי לקוח מוסבר איך מוצאים את מזהי ההתקנה.
המשתמש קיים (ללא אופרטור) מטרגט את כל המשתמשים בכל האפליקציות בפרויקט הנוכחי.

משתמשים בכלל התנאי הזה כדי להתאים לכל המשתמשים בפרויקט, ללא קשר לאפליקציה או לפלטפורמה.

חיפוש תנאים ופרמטרים

אפשר לחפש את מפתחות הפרמטרים, ערכי הפרמטרים והתנאים של הפרויקט במסוף Firebase באמצעות תיבת החיפוש שבחלק העליון של הכרטיסייה Remote Config Parameters.

מגבלות על פרמטרים ועל תנאים

בפרויקט Firebase יכולים להיות עד 2,000 פרמטרים ועד 500 תנאים. המפתחות של הפרמטרים יכולים להיות באורך של עד 256 תווים, הם חייבים להתחיל בקו תחתון או בתו של אות באנגלית (A-Z, a-z) ויכולים לכלול גם מספרים. האורך הכולל של מחרוזות ערכי פרמטרים בפרויקט לא יכול לחרוג מ-1,000,000 תווים.

הצגת שינויים בפרמטרים ובתנאים

אפשר לראות את השינויים האחרונים בתבניות Remote Config דרך מסוף Firebase. לכל פרמטר ותנאי ספציפיים, אפשר:

  • הצגת השם של המשתמש שביצע את השינוי האחרון בפרמטר או בתנאי.

  • אם השינוי התרחש באותו יום, בודקים את מספר הדקות או השעות שחלפו מאז פרסום השינוי בתבנית הפעילה Remote Config.

  • אם השינוי התרחש בעבר ביום אחד או יותר, צריך להציג את התאריך שבו פורסם השינוי בתבנית הפעילה Remote Config.

היסטוריית השינויים של פרמטרים

בדף Remote Config פרמטרים, בעמודה Last published תוכלו לראות את המשתמש האחרון ששינה כל פרמטר ואת תאריך הפרסום האחרון של השינוי:

  • כדי להציג את המטא-נתונים של השינויים בפרמטרים מקובצים, מרחיבים את קבוצת הפרמטרים.

  • כדי למיין בסדר עולה או יורד לפי תאריך הפרסום, לוחצים על התווית של העמודה Last published.

היסטוריית השינויים של תנאים

בדף Remote Config Conditions אפשר לראות את המשתמש האחרון ששינה את התנאי ואת התאריך שבו הוא שינה אותו, לצד Last modified (שינוי אחרון) שמופיע מתחת לכל תנאי.

השלבים הבאים

כדי להגדיר את הפרויקט והאפליקציה ב-Firebase כך שישתמשו ב-Remote Config, קראו את המאמר תחילת העבודה עם Firebase Remote Config.