מסמך עזר של ביטוי מותנה של הגדרת תצורה מרחוק

בדף הזה מופיע מידע עזר בנושא יצירה של ביטויים מותנים באמצעות ממשקי API לקצה העורפי של Remote Config או באמצעות מסוף Firebase. מידע נוסף על הגדרה ושימוש בממשקי ה-API לקצה העורפי זמין במאמר שינוי של Remote Config באופן פרוגרמטי.

רכיבים המשמשים ליצירת תנאים

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

רכיב תיאור
&&

משמש ליצירת ייצוג לוגי "ו-" של רכיבים אם משתמשים ביותר מרכיב אחד לתנאי מסוים. אם משתמשים ברכיב בתחביר REST בלי && , הרכיב הזה נחשב כתנאי.

הערה: צריך להוסיף רווח לפני ואחרי תווי אמפרסנד (&). מוצרים לדוגמה: element1 && element2

app.build

הפונקציה מבצעת הערכה ל-TRUE או FALSE על סמך הערך של מספר ה-build של אפליקציה.

הערה: התכונה הזו זמינה רק במכשירי Apple ו-Android. ל-Apple, משתמשים בערך של CFBundleVersion, ול-Android משתמשים בערך של versionCode.

app.version

הפונקציה מבצעת הערכה ל-TRUE או FALSE על סמך הערך של מספר הגרסה של האפליקציה.

הערה: במכשירי Android משתמשים בערך של versionName, במכשירי Apple, נעשה שימוש בערך של CFBundleShortVersionString.

app.id רכיב שמבוסס על מזהה האפליקציה ב-Firebase
app.audiences רכיב ששווה ערך ל-TRUE או ל-FALSE נוכחות או היעדרות של משתמש קהלים ב-Firebase Analytics.
app.firstOpenTimestamp רכיב שמבוסס על הפעם הראשונה שבה המשתמש מפעיל אפליקציה, שמתקבל מ- האירוע Google Analytics first_open. נעשה שימוש בתאריך ISO פורמט עם אפשרות לציין אזור זמן קבוע. לדוגמה, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') אם לא תציינו אזור זמן, המערכת תשתמש באזור הזמן GMT.
app.userProperty רכיב שמקבל את הערך TRUE או FALSE על סמך הערך המספרי או המחרוזת של מאפיין משתמש ב-Firebase Analytics.
app.operatingSystemAndVersion

רכיב שמבוסס על מערכת ההפעלה שבה פועלת אפליקציה. הפונקציה מבצעת הערכה מול TRUE כשגרסת מערכת ההפעלה וגרסת מערכת ההפעלה תואמות לנתונים שצוינו יעד.

הערה: האפשרות הזו זמינה רק באפליקציות אינטרנט.

app.browserAndVersion

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

הערה: האפשרות הזו זמינה רק באפליקציות אינטרנט.

app.firebaseInstallationId רכיב שמבוסס על המזהים של התקנות במכשירים ספציפיים. מתבצעת הערכה של TRUE כאשר מזהה ההתקנה תואם לאחד ממזהי ההתקנה שצוינו.
device.country רכיב שמבוסס על האזור או המדינה שבהם נמצא המכשיר, באמצעות תקן ISO 3166-1 alpha-2 (לדוגמה, ארה"ב או בריטניה). הערכה: TRUE כשמדינה תואמת לקוד המדינה הצפוי.
device.dateTime רכיב שמבוסס על מועד האחזור האחרון שהמכשיר מבצע. נעשה שימוש בפורמט תאריך ISO עם אפשרות לציין אזור זמן קבוע. לדוגמה, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles')
device.language רכיב שמבוסס על השפה שנבחרה במכשיר. השפה מיוצגת באמצעות תג שפה של IETF, כמו es-ES,‏ pt-BR או en-US. הפונקציה מבצעת הערכה לערך TRUE כאשר שפה תואמת לשפה צפויה
device.os רכיב שמבוסס על מערכת ההפעלה שבה נעשה שימוש במכשיר (Apple או Android). מתבצעת הערכה אל TRUE כאשר מערכת ההפעלה של המכשיר היא מהסוג הצפוי.
percent ההערכה מבוצעת אל TRUE על סמך הכללת משתמש באופן אקראי האחוזים החלקיים שהוקצה להם (בדגימה קטנה מ-0.000001%).

תנאי של רכיב יחיד מכיל שלושה שדות:

  1. name שמוגדר באופן שרירותי (עד 100 תווים)
  2. ביטוי מותנה ששווה ל-TRUE או ל-FALSE, שהוא מורכב מהאלמנטים שמוצגים למעלה.
  3. (אופציונלי) tagColor, שיכול להיות "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", 'LIME', 'ORANGE', 'PINK', 'PURPLE' או 'TEAL'. הצבע הוא לא תלוי-רישיות, ומשפיע רק על האופן שבו התנאים מוצגים Firebase.

אופרטורים נתמכים

לדוגמה, הפונקציה app.build.notContains([123, 456]) מחזירה את הערך TRUE אם גרסת build האפליקציה בפועל היא 123 או 492, אבל מחזירה את הערך FALSE אם גרסת build האפליקציה בפועל היא 999. לדוגמה, הפונקציה app.version.notContains([123, 456]) מחזירה TRUE אם גרסת האפליקציה בפועל היא 123 או 492, אבל מחזירה FALSE אם הגרסה של האפליקציה בפועל היא 999.
רכיב אופרטורים נתמכים תיאור
app.audiences .inAtLeastOne([...]) הפונקציה מחזירה את הערך TRUE אם הקהל בפועל תואם לפחות לשם אחד של קהל ברשימה.
לדוגמה:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...]) הפונקציה מחזירה את הערך TRUE אם הקהל בפועל לא תואם לפחות שם אחד של קהל ברשימה.
app.audiences .inAll([...]) הפונקציה מחזירה את הערך TRUE אם הקהל בפועל חבר בכל שם הקהל ברשימה.
app.audiences .notInAll([...]) הפונקציה מחזירה את הערך TRUE אם הקהל בפועל לא חבר בכלל בקהל ברשימה.
app.firstOpenTimestamp <=, > השוואה בין השעה של האירוע first_open לזמן שצוין במצב של התנאי ומחזירה את הערך TRUE או את הערך FALSE בהתאם לאופרטור.
שימוש לדוגמה:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
כדי לציין טווח:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') אם לא תציינו אזור זמן, המערכת תשתמש באזור הזמן GMT.
app.userProperty <, <=, ==, != >=, > הפונקציה מחזירה את הערך TRUE אם מאפיין המשתמש בפועל שווה ערך מספרי לערך שצוין באופן שתואם לאופרטור.
app.userProperty .contains([...]) הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של את מאפיין המשתמש עצמו.
app.userProperty .notContains([...]) הפונקציה מחזירה את הערך TRUE אם אף אחד מערכי היעד הוא מחרוזת משנה של את מאפיין המשתמש עצמו.
app.userProperty .exactlyMatches([...]) הפונקציה מחזירה את הערך TRUE אם מאפיין המשתמש בפועל תואם בדיוק (תלוי אותיות רישיות) כל אחד מערכי היעד ברשימה.
app.userProperty .matches([...]) הפונקציה מחזירה את הערך TRUE אם אחד מהביטויים הרגולטוריים של היעד ברשימה תואם למחרוזת משנה של הערך בפועל, או לערך כולו. כדי לאלץ התאמה של כל המחרוזת, לפני הביטוי הרגולרי "^" ומוסיפים את הסיומת '$'. שימושים תחביר RE2.
app.id == הפונקציה מחזירה את הערך TRUE אם הערך שצוין תואם למזהה האפליקציה של האפליקציה.
app.build <, <=, ==, != >=, > הפונקציה מחזירה את הערך TRUE אם גרסת ה-build של האפליקציה בפועל משווה בין המספרים לערך שצוין באופן שתואם לאופרטור.
app.build .contains([...]) הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של את גרסת ה-build של האפליקציה, לדוגמה, ו-bc הן מחרוזות משנה של 'abc'.
app.build .notContains([...]) הפונקציה מחזירה את הערך TRUE אם אף אחד מערכי היעד הוא מחרוזת משנה של את גרסת ה-build בפועל של האפליקציה.
app.build .exactlyMatches([...]) הפונקציה מחזירה את הערך TRUE אם גרסת ה-build של האפליקציה בפועל תואמת בדיוק כל אחד מערכי היעד ברשימה.
app.build .matches([...]) הפונקציה מחזירה את הערך TRUE אם כל ביטוי רגולרי נמצא בטווח תואם למחרוזת משנה של הערך בפועל, או את הערך כולו. כדי לאלץ את ההתאמה של כל המחרוזת, לפני הביטוי הרגולרי "^" והסיומת היא עם "$". שימושים תחביר RE2.
app.version <, <=, ==, != >=, > הפונקציה מחזירה את הערך TRUE אם גרסת האפליקציה בפועל משווה בין מספרים לערך שצוין באופן שתואם לאופרטור.
app.version .contains([...]) הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של גרסת האפליקציה עצמה, לדוגמה, "a" ו-bc הן מחרוזות משנה של 'abc'.
app.version .notContains([...]) הפונקציה מחזירה את הערך TRUE אם אף אחד מערכי היעד הוא מחרוזת משנה של את גרסת האפליקציה עצמה.
app.version .exactlyMatches([...]) הפונקציה מחזירה את הערך TRUE אם גרסת האפליקציה בפועל תואמת במדויק לאחד מערכי היעד ברשימה.
app.version .matches([...]) הפונקציה מחזירה את הערך TRUE אם כל ביטוי רגולרי נמצא בטווח תואם למחרוזת משנה של הערך בפועל, או את הערך כולו. כדי לאלץ את ההתאמה של כל המחרוזת, לפני הביטוי הרגולרי "^" והסיומת היא עם "$". שימושים תחביר RE2.
app.operatingSystemAndVersion .inOne([...]) הפונקציה מחזירה את הערך TRUE אם מערכת ההפעלה והגרסה תואמות אחד או מהקריטריונים של ערכי היעד ברשימה.
לדוגמה:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) הפונקציה מחזירה את הערך TRUE אם הדפדפן והגרסה תואמים לכל אחד מערכות היעד ברשימה.
לדוגמה:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] הפונקציה מחזירה את הערך TRUE אם מזהה ההתקנה תואם למזהה כלשהו שצוין ברשימה. שימוש לדוגמה: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] הפונקציה מחזירה את הערך TRUE אם המדינה שבה נמצא המכשיר תואם לאחד שצוין ברשימה. שימוש לדוגמה: device.country in ['gb', 'us']. קוד המדינה של המכשיר נקבע לפי כתובת ה-IP של המכשיר בבקשה, או לפי קוד המדינה שנקבע על ידי Firebase Analytics (אם נתוני Analytics משותפים עם Firebase).
device.dateTime <=, > השוואה בין השעה הנוכחית מתאים לזמן היעד של התנאי, ומחזיר את הערך TRUE או FALSE, בהתאם לאופרטור. דוגמאות לשימוש: dateTime < dateTime('2017-03-22T13:39:44')
device.language in [...] הפונקציה מחזירה את הערך TRUE אם אחת מהשפות באפליקציה תואמת לשפה ברשימה. שימוש לדוגמה: device.language in ['en-UK', 'en-US'].
device.os ==, != הפונקציה מחזירה את הערך TRUE אם מערכת ההפעלה של המכשיר משווה לערך בשדה הזה שתואם לאופרטור.
percent <=,‏ >,‏ between הפונקציה מחזירה את הערך TRUE אם הערך בשדה percent בהשוואה לערך שהוקצה באופן אקראי שתואם לאופרטור.

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

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

percent('keyName') <= 10

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

percent between 20 and 60

כדי להגדיר טווח של משתמשים בין 60 ל-80 באמצעות מקור מותאם אישית:

percent('seedName') between 60 and 80