Odwołanie do wyrażenia warunkowego Zdalnej konfiguracji

Ta strona zawiera informacje referencyjne dotyczące tworzenia 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 Modyfikowanie Zdalnej konfiguracji za pomocą kodu.

Elementy używane do tworzenia warunków

Interfejs REST API Remote Config obsługuje te same elementy, których można 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 on traktowany jako warunek.

Uwaga: przed znakiem ampersand i po nim wymagana jest spacja. Na przykład: element1 && element2.

app.build

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

Uwaga: ta funkcja jest dostępna tylko na urządzeniach Apple i urządzeniach z Androidem. W przypadku Apple użyj wartości CFBundleVersion, a w przypadku Androida – wartości versionCode.

app.version

Zwraca wartość TRUE lub FALSE na podstawie 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 w Firebase,
app.audiences Element, który przyjmuje wartość TRUE lub FALSE w zależności od obecności lub braku użytkownika na co najmniej jednej 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, na przykład app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). Jeśli nie podasz strefy czasowej, zostanie użyta strefa GMT.
app.userProperty Element, który przyjmuje wartość TRUE lub FALSE na podstawie wartości liczbowej lub ciągu znaków Google Analyticswłaściwości użytkownika.
app.operatingSystemAndVersion

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

Uwaga: ta opcja jest dostępna 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: ta opcja jest dostępna 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 podanych identyfikatorów instalacji.
app.customSignal Element, który przyjmuje 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, zgodny ze standardem ISO 3166-1 alfa-2 (np. US lub UK). 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, na przykład dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language elementu na podstawie języka wybranego na urządzeniu; Język jest reprezentowany przez tag 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 losowo przypisanego ułamka procenta (z rozmiarem próbki wynoszącym nawet 0,000001%).

Warunek jednoelementowy zawiera 3 pola:

  1. Dowolnie zdefiniowany parametr name (maksymalnie 100 znaków)
  2. Wyrażenie warunkowe, które przyjmuje wartość TRUE lub FALSE, składające się z elementów przedstawionych w poprzedniej tabeli.
  3. (Opcjonalnie) tagColor, który może mieć wartość „BLUE”, „BROWN”, „CYAN”, „DEEP_ORANGE”, „GREEN”, „INDIGO”, „LIME”, „ORANGE”, „PINK”, „PURPLE” lub „TEAL”. W przypadku koloru wielkość liter nie jest rozróżniana. Kolor wpływa tylko na sposób wyświetlania warunków w konsoli Firebase.

Obsługiwane operatory

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

Zwraca wartość TRUE, jeśli rzeczywista grupa odbiorców pasuje do co najmniej 1 nazwy grupy odbiorców na liście.
Na przykład:

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

Zwraca wartość TRUE, jeśli rzeczywista grupa odbiorców nie pasuje do co najmniej 1 nazwy grupy odbiorców na liście.

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

Zwraca wartość TRUE, jeśli rzeczywista grupa odbiorców jest członkiem każdej grupy odbiorców na liście.

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

Zwraca wartość TRUE, jeśli rzeczywista grupa odbiorców nie należy do żadnej grupy 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 w zależności od 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żyty czas GMT.

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

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

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

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podłańcuchem rzeczywistej właściwości użytkownika.

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

Zwraca wartość TRUE, jeśli żadna z wartości docelowych nie jest podłańcuchem rzeczywistej właściwości użytkownika.

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

Zwraca wartość TRUE, jeśli rzeczywista właściwość użytkownika dokładnie pasuje (z uwzględnieniem wielkości liter) do dowolnej wartości docelowej na liście.

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

Zwraca TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podłańcucha lub całej rzeczywistej wartości. Aby wymusić dopasowanie całego ciągu znaków, poprzedź wyrażenie regularne znakiem „^” i dodaj na końcu znak „$”. Używa składni RE2.

app.id ==

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

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

Zwraca TRUE, jeśli kompilacja aplikacji jest porównywana numerycznie z podaną wartością w sposób zgodny z operatorem.

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

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podłańcuchem rzeczywistej kompilacji aplikacji – na przykład „a” i „bc” są podłańcuchami „abc”.

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

Zwraca TRUE, jeśli żadna z wartości docelowych nie jest podłańcuchem rzeczywistej kompilacji aplikacji. Na przykład app.build.notContains([123, 456]) zwraca TRUE, jeśli rzeczywista kompilacja aplikacji to 123 lub 492, ale zwraca FALSE, jeśli rzeczywista kompilacja aplikacji to 999.

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

Zwraca wartość TRUE, jeśli rzeczywista kompilacja aplikacji dokładnie pasuje do dowolnej wartości docelowej na liście.

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

Zwraca TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podłańcucha lub całej rzeczywistej wartości. Aby wymusić dopasowanie całego ciągu, poprzedź wyrażenie regularne znakiem „^” i dodaj na końcu znak „$”. Używa składni RE2.

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

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

Uwaga: operatory porównania liczbowego obsługują tylko liczbowe wersje semantyczne (np. 1.2.3) i nie obsługują sufiksów ani łączników wersji przedpremierowych (np. -beta lub -rc). W przypadku ciągów znaków wersji zawierających sufiksy nieliczbowe lub łączniki używaj operatorów ciągów znaków (np. .matches lub .contains).

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

Zwraca TRUE, jeśli dowolna z wartości docelowych jest podłańcuchem rzeczywistej wersji aplikacji – na przykład „a” i „bc” są podłańcuchami „abc”.

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

Zwraca TRUE, jeśli żadna z wartości docelowych nie jest podłańcuchem rzeczywistej wersji aplikacji. Na przykład app.version.notContains([123, 456]) zwraca TRUE, jeśli rzeczywista wersja aplikacji to 123 lub 492, ale zwraca FALSE, jeśli rzeczywista wersja aplikacji to 999.

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

Zwraca wartość TRUE, jeśli rzeczywista wersja aplikacji dokładnie odpowiada dowolnej z wartości docelowych na liście.

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

Zwraca TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podłańcucha lub całej rzeczywistej wartości. Aby wymusić dopasowanie całego ciągu, poprzedź wyrażenie regularne znakiem „^” i dodaj na końcu znak „$”. Używa składni RE2.

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

Zwraca wartość TRUE, jeśli system operacyjny i wersja pasują do dowolnej z wartości docelowych na liście.
Na przykład:

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

Zwraca wartość TRUE, jeśli przeglądarka i wersja pasują do dowolnej wartości docelowej na liście.
Na przykład:

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

Zwraca TRUE, jeśli identyfikator instalacji pasuje do dowolnego identyfikatora na liście. Przykładowe użycie: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']

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

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

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

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podłańcuchem rzeczywistego warunku sygnału niestandardowego.

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

Zwraca wartość TRUE, jeśli dowolna z wartości docelowych jest podłańcuchem rzeczywistego warunku sygnału niestandardowego.

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

Zwraca TRUE, jeśli rzeczywisty warunek sygnału niestandardowego dokładnie pasuje (z uwzględnieniem wielkości liter) do dowolnej wartości docelowej na liście.

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

Zwraca TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podłańcucha lub całości rzeczywistego warunku sygnału niestandardowego. Aby wymusić dopasowanie całego ciągu znaków, poprzedź wyrażenie regularne znakiem „^” i dodaj na końcu znak „$”. Używa składni RE2.

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

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

device.country in [...]

Zwraca wartość TRUE, jeśli kraj urządzenia jest zgodny z jednym z krajów 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 w zależności od operatora. Przykładowe użycie: dateTime < dateTime('2017-03-22T13:39:44').

device.language in [...]

Zwraca wartość TRUE, jeśli którykolwiek z języków aplikacji pasuje do języka 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 zgodny z wartością w tym polu, która pasuje do operatora.
percent <=, >, between

Zwraca TRUE, jeśli wartość w polu percent jest zgodna z losowo przypisaną wartością pasującą do operatora.

Możesz określić ziarno, aby wybrać nową, losowo przypisaną grupę instancji aplikacji dla danego zakresu procentowego, jak opisano w sekcji Typy reguł warunkowych.

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

percent('keyName') <= 10

Aby skonfigurować konkretny 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 za pomocą niestandardowego ziarna:

percent('seedName') between 60 and 80