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

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

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

‫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.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 אם any ביטוי רגולרי של היעד ברשימה תואם למחרוזת משנה של הערך בפועל או לערך בפועל כולו. כדי לאלץ התאמה של המחרוזת כולה, צריך להוסיף לפני הביטוי הרגולרי את התו ^ ואחריו את התו $. נעשה שימוש בתחביר RE2.

app.id ==

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

app.build <, <=, ==, !=, >=, >

הפונקציה מחזירה את הערך TRUE אם מספר ה-Build של האפליקציה בפועל שווה לערך שצוין, בהתאם לאופרטור.

app.build .contains([...])

הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של גרסת האפליקציה בפועל – לדוגמה, 'a' ו-'bc' הן מחרוזות משנה של 'abc'.

app.build .notContains([...])

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

app.build .exactlyMatches([...])

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

app.build .matches([...])

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

app.version <, <=, ==, !=, >=, >

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

הערה: אופרטורים להשוואה מספרית תומכים רק בגרסאות סמנטיות מספריות (למשל, 1.2.3) ולא תומכים בסיומות או במקפים של גרסאות לפני ההשקה (למשל, -beta או -rc). כדי להשוות מחרוזות של גרסאות שמכילות סיומות או מקפים לא מספריים, צריך להשתמש באופרטורים של מחרוזות (למשל, .matches או .contains).

app.version .contains([...])

הפונקציה מחזירה את הערך TRUE אם אחד מערכי היעד הוא מחרוזת משנה של גרסת האפליקציה בפועל – לדוגמה, 'a' ו-'bc' הן מחרוזות משנה של 'abc'.

app.version .notContains([...])

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

app.version .exactlyMatches([...])

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

app.version .matches([...])

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

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

כדי לעשות זאת, צריך לציין את שם ה-seed לפני האופרטור, כמו בדוגמה הבאה:

percent('keyName') <= 10

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

percent between 20 and 60

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

percent('seedName') between 60 and 80