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 Programowe modyfikowanie Zdalnej konfiguracji.

Elementy użyte do utworzenia 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 za pomocą konsoli Firebase:

Element Opis
&&

Używany 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 symbolu „&” musi być spacja. Na przykład:element1 && element2.

app.build

Zwraca wartość TRUE lub FALSE w zależności od numeru kompilacji aplikacji.

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

app.version

Zwraca wartość TRUE lub FALSE w zależności od 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 elementu opartego na identyfikatorze aplikacji Firebase
app.audiences Element, który na podstawie obecności lub nieobecności użytkownika na co najmniej 1 liście odbiorców w Firebase Analytics przyjmuje wartość TRUE lub FALSE.
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żyty czas GMT.
app.userProperty Element, który na podstawie wartości liczbowej lub ciągu Google Analyticswłaściwości użytkownika przyjmuje wartość TRUE lub FALSE.
app.operatingSystemAndVersion

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

Uwaga: ta funkcja 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 funkcja jest dostępna tylko w przypadku aplikacji internetowych.

app.firebaseInstallationId Element oparty na identyfikatorach konkretnych instalacji aplikacji na urządzeniach. Przyjmuje wartość TRUE, gdy identyfikator instalacji jest zgodny z jednym z określonych identyfikatorów instalacji.
app.customSignal Element, który na podstawie wartości liczbowej, semantycznej lub tekstowej warunków sygnału niestandardowego przyjmuje wartość TRUE lub FALSE.
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 pasuje do oczekiwanego kodu kraju.
device.dateTime Element oparty na czasie ostatniego pobrania danych przez urządzenie. Używa formatu daty ISO z opcją określania stałej strefy czasowej, np. dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language Element na podstawie języka wybranego 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 pasuje do oczekiwanego kodu języka.
device.os Element zależny od systemu operacyjnego używanego na urządzeniu (Apple lub Android). Przyjmuje wartość TRUE, gdy system operacyjny urządzenia jest oczekiwanego typu.
percent Zwraca wartość TRUE na podstawie tego, czy użytkownik należy do losowo przypisanej grupy o ułamkowym procencie (przy wielkościach próby nawet 0,000001%).

Warunek jednoelementowy zawiera 3 pola:

  1. Dowolnie zdefiniowany name (maksymalnie 100 znaków).
  2. Wyrażenie warunkowe, które przyjmuje wartość TRUE lub FALSE, składające się z elementów pokazanych powyżej.
  3. (Opcjonalnie) tagColor, które może być „BLUE”, „BROWN”, „CYAN”, „DEEP_ORANGE”, „GREEN”, „INDIGO”, „LIME”, „ORANGE”, „PINK”, „PURPLE” lub „TEAL”. Wielkość liter nie ma znaczenia, a kolor wpływa tylko na sposób wyświetlania warunków w konsoli Firebase.

Obsługiwane operatory

Na przykład funkcja app.build.notContains([123, 456]) zwraca wartość TRUE, jeśli rzeczywista kompilacja aplikacji to 123 lub 492, ale zwraca wartość FALSE, jeśli rzeczywista kompilacja aplikacji to 999. Na przykład funkcja 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.
Na przykład:

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

app.audiences .notInAtLeastOne([...]) Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców nie pasuje do co najmniej 1 nazwy listy odbiorców na liście.
app.audiences .inAll([...]) Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców jest elementem każdej nazwy listy 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 określonym czasem 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żyta strefa GMT.
app.userProperty <, <=, ==, !=, >=, > Zwraca 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 któraś 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 dokładnie pasuje (z uwzględnieniem wielkości liter) do dowolnej wartości docelowej na liście.
app.userProperty .matches([...]) Zwraca wartość TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podciągu lub całej wartości rzeczywistej. Aby wymusić dopasowanie całego ciągu znaków, przed wyrażeniem regularnym umieść znak „^”, a po nim znak „$”. Używana jest składnia RE2.
app.id == Zwraca TRUE, jeśli podana wartość jest zgodna z identyfikatorem aplikacji.
app.build <, <=, ==, !=, >=, > Zwraca TRUE, jeśli rzeczywista kompilacja aplikacji jest numerycznie porównywana z wartością określoną w sposób zgodny z operatorem.
app.build .contains([...]) Zwraca wartość TRUE, jeśli któraś z wartości docelowych jest podłańcuchem rzeczywistej wersji aplikacji – np. „a” i „bc” są podłańcuchami „abc”.
app.build .notContains([...]) Zwraca wartość TRUE, jeśli żadna z wartości docelowych nie jest podłańcuchem rzeczywistej wersji aplikacji.
app.build .exactlyMatches([...]) Zwraca wartość TRUE, jeśli rzeczywista kompilacja aplikacji jest dokładnie zgodna z dowolną wartością docelową na liście.
app.build .matches([...]) Zwraca wartość TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podciągu lub całej wartości rzeczywistej. Aby wymusić dopasowanie całego ciągu znaków, przed wyrażeniem regularnym umieść znak „^”, a po nim znak „$”. Używana jest składnia RE2.
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 wartość TRUE, jeśli któraś 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 wartość TRUE, jeśli żadna z wartości docelowych nie jest podłańcuchem 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 pasuje do podciągu lub całej wartości rzeczywistej. Aby wymusić dopasowanie całego ciągu znaków, przed wyrażeniem regularnym umieść znak „^”, a po nim znak „$”. Używana jest składnia RE2.
app.operatingSystemAndVersion .inOne([...]) Zwraca wartość TRUE, jeśli system operacyjny i wersja są zgodne z dowolną 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 jej wersja pasują do dowolnej z wartości docelowych na liście.
Na przykład:

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

app.firebaseInstallationId in [...] Zwraca wartość TRUE, jeśli identyfikator instalacji pasuje do dowolnego identyfikatora z listy. Przykładowe użycie: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
app.customSignal <, <=, ==, !=, >=, > Zwraca 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 dokładnie pasuje (z uwzględnieniem wielkości liter) do dowolnej wartości docelowej na liście.
app.customSignal .matches([...]) Zwraca wartość TRUE, jeśli jakiekolwiek docelowe wyrażenie regularne na liście pasuje do podciągu lub całego rzeczywistego warunku sygnału niestandardowego. Aby wymusić dopasowanie całego ciągu znaków, przed wyrażeniem regularnym umieść znak „^”, a po nim znak „$”. Używana jest składnia RE2.
version(app.customSignal) <, <=, ==, !=, >=, > Zwraca TRUE, jeśli warunek sygnału niestandardowego semantycznie porównuje się z określoną wartością w sposób zgodny z operatorem.
device.country in [...] Zwraca wartość TRUE, jeśli kraj urządzenia jest zgodny z dowolnym krajem na liście. Przykłady użycia: 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łady użycia: 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 pasującą do operatora.
percent <=, >, between Zwraca TRUE, jeśli wartość w polu percent jest porównywana z losowo przypisaną wartością pasującą do operatora.

Możesz określić wartość początkową, 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ę elementu początkowego 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 za pomocą 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