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


אפשר להגדיר תבניות גם לתרחישי לדוגמה של לקוחות וגם לתרחישי לדוגמה של שרתים. תבניות הלקוח מוצגות לכל מכונות האפליקציות שמטמיעות את ערכות ה-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), ולהציג תשובות ממודלים שונים על סמך כללי אותות מותאמים אישית. בתרחיש לדוגמה הזה, אפשר להשתמש בגרסה יציבה של מודל בתור ערך ברירת המחדל להצגת רוב הבקשות, ולהשתמש באות המותאם אישית כדי להשתמש במודל ניסיוני בתגובה לבקשות של לקוחות לצורך בדיקה.

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

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

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

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

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

באפליקציה, ערכי הפרמטרים מוחזרים על ידי שיטות 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. בוחרים קבוצה קיימת או יוצרים קבוצה חדשה על ידי הזנת שם ותיאור ובחירה באפשרות Create new group. אחרי שמשמרים קבוצה, אפשר לפרסם אותה באמצעות הלחצן פרסום השינויים.

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

סוגי הכללים הבאים נתמכים במסוף 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 נעשה שימוש ב-Firebase Apple platforms SDK בגרסה 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 .001%), באמצעות ווידג'ט פס ההזזה כדי לפלח משתמשים שאקראיים (מופעים של אפליקציות) לקבוצות.

כל מכונה של אפליקציה ממופה באופן קבוע למספר שלם או חלקי אקראי, בהתאם ל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.