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


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

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

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

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

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

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

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

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

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

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

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

השלבים הבאים

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