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

בדף הזה מופיע מידע עזר בנושא יצירה של ביטויים מותנים באמצעות ממשקי 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 על סמך הערך המספרי או המחרוזת של Google Analyticsמאפיין משתמש.
app.operatingSystemAndVersion

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

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

app.browserAndVersion

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

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

app.firebaseInstallationId רכיב שמבוסס על המזהים של התקנות במכשירים ספציפיים. הפונקציה מקבלת את הערך TRUE כשמזהה ההתקנה תואם לאחד ממזהי ההתקנות שצוינו.
app.customSignal רכיב ששווה ל-TRUE או ל-FALSE על סמך הערך המספרי, הסמנטי או המחרוזת של תנאי האותות המותאמים אישית.
device.country רכיב שמבוסס על האזור או המדינה שבהם המכשיר נמצא, לפי תקן ISO 3166-1 alpha-2 (לדוגמה, US או UK). הפונקציה מקבלת את הערך 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 אם אחד מערכי היעד הוא מחרוזת משנה של הגרסה הבנויה בפועל של האפליקציה. לדוגמה, "a" ו-"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']
app.customSignal <, <=, ==, !=, >=, > הפונקציה מחזירה את הערך TRUE אם התנאי של האות בהתאמה אישית משווה באופן מספרי לערך שצוין באופן שמתאים לאופרטור.
app.customSignal .contains([...]) הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של התנאי בפועל של האות המותאם אישית.
app.customSignal .notContains([...]) הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של התנאי בפועל של האות המותאם אישית.
app.customSignal .exactlyMatches([...]) הפונקציה מחזירה את הערך TRUE אם תנאי האות המותאם אישית בפועל תואם בדיוק (לפי אותיות רישיות) לאחד מערכי היעד ברשימה.
app.customSignal .matches([...]) הפונקציה מחזירה את הערך TRUE אם ביטוי רגולרי כלשהו של יעד ברשימה תואם למחרוזת משנה של תנאי האות בהתאמה אישית בפועל, או לתנאי האות כולו. כדי לאלץ התאמה של המחרוזת כולה, מוסיפים לביטוי הרגולרי את התו '^' בתחילת הביטוי ואת התו '$' בסוף הביטוי. המערכת משתמשת בתחביר של RE2.
version(app.customSignal) <, <=, ==, !=, >=, > הפונקציה מחזירה את הערך TRUE אם התנאי של האות בהתאמה אישית משווה באופן סמנטי לערך שצוין באופן שמתאים לאופרטור.
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