Odwołanie do wyrażenia warunkowego Zdalnej konfiguracji

Ta strona zawiera informacje o tworzeniu wyrażeń warunkowych za pomocą interfejsów API backendu Remote Config lub konsoli Firebase. Więcej informacji o konfigurowaniu i używaniu interfejsów API backendu znajdziesz w artykule Programowe modyfikowanie Zdalnej konfiguracji.

Elementy używane do tworzenia warunków

Interfejs Remote Config REST API obsługuje te same elementy, których możesz używać do tworzenia warunków podczas konfigurowania Remote Config w konsoli Firebase:

Element Opis
&&

Służy do tworzenia logicznego „i” elementów, jeśli w warunku używasz więcej niż 1 elementu. Jeśli element jest używany w składni REST bez && , jest traktowany jako warunek.

Uwaga: przed i po ampersandach musi być spacja. Przykład: element1 && element2.

app.build

Zwraca wartość TRUE lub FALSE na podstawie wartości numeru kompilacji aplikacji.

Uwaga: dostępny tylko na urządzeniach Apple i Android. W przypadku urządzeń Apple użyj wartości CFBundleVersion, a w przypadku urządzeń z Androidem – wartości versionCode.

app.version

Zwraca wartość TRUE lub FALSE na podstawie wartości numeru wersji aplikacji.

Uwaga: w przypadku urządzeń z Androidem użyj wartości versionName, a w przypadku urządzeń Apple – wartości CFBundleShortVersionString.

app.id Element oparty na identyfikatorze aplikacji Firebase.
app.audiences Element, który zwraca wartość TRUE lub FALSE na podstawie obecności lub braku użytkownika w co najmniej 1 liście odbiorców Firebase Analytics.
app.firstOpenTimestamp Element oparty na pierwszym uruchomieniu aplikacji przez użytkownika, uzyskany ze zdarzenia Google Analytics first_open. Używa formatu daty ISO z opcją określenia stałej strefy czasowej, np. app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). Jeśli nie podasz strefy czasowej, zostanie użyta strefa czasowa GMT.
app.userProperty Element, który zwraca wartość TRUE lub FALSE na podstawie wartości liczbowej lub ciągu znaków Google Analytics właściwości użytkownika.
app.operatingSystemAndVersion

Element oparty na systemie operacyjnym, w którym działa aplikacja. Zwraca wartość TRUE, gdy system operacyjny i jego wersja są zgodne z określonym celem.

Uwaga: dostępny tylko w przypadku aplikacji internetowych.

app.browserAndVersion

Element oparty na przeglądarce, w której działa aplikacja. Zwraca wartość TRUE, gdy przeglądarka i jej wersja są zgodne z określonym celem.

Uwaga: dostępny tylko w przypadku aplikacji internetowych.

app.firebaseInstallationId Element oparty na identyfikatorach konkretnych instalacji na urządzeniach. Zwraca wartość TRUE, gdy identyfikator instalacji jest zgodny z jednym z określonych identyfikatorów.
app.customSignal Element, który zwraca wartość TRUE lub FALSE na podstawie wartości liczbowej, semantycznej lub ciągu znaków warunków sygnału niestandardowego.
device.country Element oparty na regionie lub kraju, w którym znajduje się urządzenie, zgodnie z e standardem ISO 3166-1 alfa-2 (np. US lub PL). Zwraca wartość TRUE gdy kraj jest zgodny z oczekiwanym kodem kraju.
device.dateTime Element oparty na czasie ostatniego pobrania danych przez urządzenie. Używa formatu daty ISO z opcją określenia stałej strefy czasowej, np. dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language Element oparty na języku wybranym na urządzeniu. Język jest reprezentowany za pomocą tagu języka IETF, np. es-ES, pt-BR lub en-US. Zwraca wartość TRUE, gdy język jest zgodny z oczekiwanym kodem języka.
device.os Element oparty na systemie operacyjnym używanym na urządzeniu (Apple lub Android). Zwraca wartość TRUE, gdy system operacyjny urządzenia jest oczekiwanego typu.
percent Zwraca wartość TRUE na podstawie uwzględnienia użytkownika w losowo przypisanym ułamkowym procencie (przy rozmiarach próbek nawet 0,000001%).

Warunek jednoelementowy zawiera 3 pola:

  1. name zdefiniowana w dowolny sposób (maksymalnie 100 znaków),
  2. wyrażenie warunkowe, które zwraca wartość TRUE lub FALSE, składające się z elementów pokazanych powyżej,
  3. (opcjonalnie) tagColor, które może mieć wartość „BLUE”, „BROWN”, „CYAN”, „DEEP_ORANGE”, „GREEN”, „INDIGO”, „LIME”, „ORANGE”, „PINK”, „PURPLE” lub „TEAL”. Kolor nie uwzględnia wielkości liter i wpływa tylko na sposób wyświetlania warunków w konsoli Firebase.

Obsługiwane operatory

Na przykład, app.build.notContains([123, 456]) zwraca TRUE jeśli rzeczywista wersja aplikacji to 123 lub 492, ale zwraca FALSE jeśli rzeczywista wersja aplikacji to 999.

Na przykład, app.version.notContains([123, 456]) zwraca wartość TRUE jeśli rzeczywista wersja aplikacji to 123 lub 492, ale zwraca wartość FALSE jeśli rzeczywista wersja aplikacji to 999.

Element Obsługiwane operatory Opis
app.audiences .inAtLeastOne([...])

Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców jest zgodna z co najmniej 1 nazwą listy odbiorców na liście.
Przykład:

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

app.audiences .notInAtLeastOne([...])

Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców nie jest zgodna z co najmniej 1 nazwą listy odbiorców na liście.

app.audiences .inAll([...])

Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców jest zgodna z każdą nazwą listy odbiorców na liście.

app.audiences .notInAll([...])

Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców nie jest zgodna z żadną listą odbiorców na liście.

app.firstOpenTimestamp <=, >

Porównuje czas zdarzenia first_open z czasem określonym w warunku i zwraca wartość TRUE lub FALSE na podstawie operatora.
Przykładowe użycie:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
Aby określić zakres:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') Jeśli nie podasz strefy czasowej, zostanie użyta strefa czasowa GMT.

app.userProperty <, <=, ==, !=, >=, >

Zwraca wartość TRUE, jeśli rzeczywista właściwość użytkownika jest numerycznie porównywana z wartością określoną w sposób zgodny z operatorem.

app.userProperty .contains([...])

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podciągiem rzeczywistej właściwości użytkownika.

app.userProperty .notContains([...])

Zwraca wartość TRUE, jeśli żadna z wartości docelowych nie jest podciągiem rzeczywistej właściwości użytkownika.

app.userProperty .exactlyMatches([...])

Zwraca wartość TRUE, jeśli rzeczywista właściwość użytkownika jest dokładnie zgodna (z uwzględnieniem wielkości liter) dowolną z wartości docelowych na liście.

app.userProperty .matches([...])

Zwraca wartość TRUE jeśli dowolne docelowe wyrażenie regularne na liście jest zgodne z podciągiem lub całą rzeczywistą wartością. Aby wymusić dopasowanie całego ciągu znaków, dodaj przed wyrażeniem regularnym znak „^”, a po nim znak „$”. Używa składni RE2.

app.id ==

Zwraca wartość TRUE, jeśli podana wartość jest zgodna z identyfikatorem aplikacji.

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

Zwraca wartość TRUE, jeśli rzeczywista wersja aplikacji jest numerycznie porównywana z wartością określoną w sposób zgodny z operatorem.

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

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podciągiem rzeczywistej wersji aplikacji – np. „a” i „bc” są podciągami „abc”.

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

Zwraca wartość TRUE, jeśli żadna z wartości docelowych nie jest podciągiem rzeczywistej wersji aplikacji.

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

Zwraca wartość TRUE, jeśli rzeczywista wersja aplikacji jest dokładnie zgodna z dowolną z wartości docelowych na liście.

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

Zwraca wartość TRUE jeśli dowolne docelowe wyrażenie regularne na liście jest zgodne z podciągiem lub całą rzeczywistą wartością. Aby wymusić dopasowanie całego ciągu znaków, dodaj przed wyrażeniem regularnym znak „^”, a po nim znak „$”. Używa RE2 składni.

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

Zwraca wartość TRUE, jeśli rzeczywista wersja aplikacji jest numerycznie porównywana z wartością określoną w sposób zgodny z operatorem.

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

Zwraca TRUE wartość, jeśli dowolna z wartości docelowych jest podciągiem rzeczywistej wersji aplikacji – np. „a” i „bc” są podciągami „abc”.

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

Zwraca wartość TRUE, jeśli żadna z wartości docelowych nie jest podciągiem rzeczywistej wersji aplikacji.

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

Zwraca wartość TRUE, jeśli rzeczywista wersja aplikacji jest dokładnie zgodna z dowolną z wartości docelowych na liście.

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

Zwraca wartość TRUE jeśli dowolne docelowe wyrażenie regularne na liście jest zgodne z podciągiem lub całą rzeczywistą wartością. Aby wymusić dopasowanie całego ciągu znaków, dodaj przed wyrażeniem regularnym znak „^”, a po nim znak „$”. Używa RE2 składni.

app.operatingSystemAndVersion .inOne([...])

Zwraca wartość TRUE, jeśli system operacyjny i jego wersja są zgodne z dowolną z wartości docelowych na liście.
Przykład:

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

app.browserAndVersion .inOne([...])

Zwraca wartość TRUE, jeśli przeglądarka i jej wersja są zgodne z dowolną z wartości docelowych na liście.
Przykład:

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

app.firebaseInstallationId in [...]

Zwraca wartość TRUE, jeśli identyfikator instalacji jest zgodny z dowolnym identyfikatorem określonym na liście. Przykładowe użycie: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']

app.customSignal <, <=, ==, !=, >=, >

Zwraca wartość TRUE, jeśli warunek sygnału niestandardowego jest numerycznie porównywany z wartością określoną w sposób zgodny z operatorem.

app.customSignal .contains([...])

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podciągiem rzeczywistego warunku sygnału niestandardowego.

app.customSignal .notContains([...])

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podciągiem rzeczywistego warunku sygnału niestandardowego.

app.customSignal .exactlyMatches([...])

Zwraca wartość TRUE, jeśli rzeczywisty warunek sygnału niestandardowego jest dokładnie zgodny (z uwzględnieniem wielkości liter) z dowolną z wartości docelowych na liście.

app.customSignal .matches([...])

Zwraca wartość TRUE, jeśli dowolne docelowe wyrażenie regularne na liście jest zgodne z podciągiem lub całą rzeczywistą wartością warunku sygnału niestandardowego. Aby wymusić dopasowanie całego ciągu znaków, dodaj przed wyrażeniem regularnym znak „^”, a po nim znak „$”. Używa składni RE2.

version(app.customSignal) <, <=, ==, !=, >=, >

Zwraca wartość TRUE, jeśli warunek sygnału niestandardowego jest semantycznie porównywany z wartością określoną w sposób zgodny z operatorem.

device.country in [...]

Zwraca wartość TRUE, jeśli kraj urządzenia jest zgodny z dowolnym krajem określonym na liście. Przykładowe użycie: device.country in ['gb', 'us']. Kod kraju urządzenia jest określany na podstawie adresu IP urządzenia w żądaniu lub kodu kraju określonego przez Firebase Analytics (jeśli dane Analytics są udostępniane Firebase).

device.dateTime <=, >

Porównuje bieżący czas z czasem docelowym warunku i zwraca wartość TRUE lub FALSE na podstawie operatora. Przykładowe użycie: dateTime < dateTime('2017-03-22T13:39:44').

device.language in [...]

Zwraca wartość TRUE, jeśli dowolny język aplikacji jest zgodny z językiem na liście. Przykładowe użycie: device.language in ['en-UK', 'en-US'].

device.os ==, != Zwraca wartość TRUE, jeśli system operacyjny urządzenia jest porównywany z wartością w tym polu w sposób zgodny z operatorem.
percent <=, >, between

Zwraca wartość TRUE, jeśli wartość w polu percent jest porównywana z wartością, która została losowo przypisana w sposób zgodny z operatorem.

Możesz określić ziarno, aby wybrać nową losowo przypisaną grupę instancji aplikacji dla danego zakresu procentowego, zgodnie z opisem w sekcji Typy reguł warunków.

Aby to zrobić, podaj nazwę ziarna przed operatorem, jak w tym przykładzie:

percent('keyName') <= 10

Aby skonfigurować określony zakres, możesz użyć operatora between. Aby skonfigurować zakres użytkowników od 20 do 60 przy użyciu domyślnego ziarna:

percent between 20 and 60

Aby skonfigurować zakres użytkowników od 60 do 80 przy użyciu ziarna niestandardowego:

percent('seedName') between 60 and 80