Odniesienie do wyrażeń warunkowych zdalnej konfiguracji

Ta strona zawiera informacje referencyjne dotyczące tworzenia wyrażeń warunkowych przy użyciu interfejsów API zaplecza usługi Remote Config lub konsoli Firebase. Aby uzyskać więcej informacji na temat konfigurowania i używania interfejsów API zaplecza, zobacz Programowe modyfikowanie zdalnej konfiguracji .

Elementy używane do tworzenia warunków

Interfejs API REST usługi Remote Config obsługuje te same elementy, których można użyć do tworzenia warunków podczas konfigurowania funkcji Remote Config za pomocą konsoli Firebase:

Element Opis
&&

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

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

app.build

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

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

app.version

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

Uwaga: w przypadku urządzeń z systemem Android użyj wartości wersjiName , a w przypadku urządzeń Apple użyj wartości CFBundleShortVersionString .

app.id Element oparty na identyfikatorze aplikacji Firebase
app.audiences Element, który ma wartość TRUE lub FALSE na podstawie obecności lub nieobecności użytkownika w co najmniej jednej grupie odbiorców Firebase Analytics .
app.firstOpenTimestamp Element oparty na pierwszym uruchomieniu aplikacji przez użytkownika, uzyskany ze zdarzenia first_open Google Analytics. Wykorzystuje format 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 określono strefy czasowej, używany jest czas GMT.
app.userProperty Element, którego wartość ma wartość TRUE lub FALSE na podstawie wartości liczbowej lub ciągu znaków właściwości użytkownika Firebase Analytics .
app.operatingSystemAndVersion

Element oparty na systemie operacyjnym, na którym działa aplikacja. Ocenia wartość TRUE , gdy system operacyjny i wersja systemu operacyjnego odpowiadają określonemu celowi.

Uwaga: dostępne tylko dla aplikacji internetowych.

app.browserAndVersion

Element oparty na przeglądarce, w której działa aplikacja. Ocenia wartość TRUE , gdy przeglądarka i wersja przeglądarki odpowiadają określonemu celowi.

Uwaga: dostępne tylko dla aplikacji internetowych.

app.firebaseInstallationId Element bazujący na identyfikatorach instalacji konkretnych urządzeń. Ocenia wartość TRUE , gdy identyfikator instalacji pasuje do jednego z określonych identyfikatorów instalacji.
device.country Element oparty na regionie/kraju, w którym znajduje się urządzenie, zgodnie z normą ISO 3166-1 alfa-2 (na przykład USA lub Wielka Brytania). Ocenia wartość TRUE , gdy kraj odpowiada oczekiwanemu kodowi kraju.
device.dateTime Element oparty na czasie ostatniego pobrania wykonanego przez urządzenie. Wykorzystuje format daty ISO z opcją określenia stałej strefy czasowej; na przykład 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ą znacznika języka IETF, takiego jak es-ES, pt-BR lub en-US. Ocenia wartość TRUE , gdy język pasuje do oczekiwanego kodu języka.
device.os Element oparty na systemie operacyjnym używanym na urządzeniu (Apple lub Android). Ocenia wartość TRUE , gdy system operacyjny urządzenia jest oczekiwanym typem.
percent Ocenia na TRUE na podstawie włączenia użytkownika do losowo przypisanego ułamka procentowego (przy próbkach o wielkości zaledwie 0,000001%).

Warunek jednoelementowy zawiera trzy pola:

  1. Dowolnie zdefiniowana name (do 100 znaków)
  2. Wyrażenie warunkowe, którego wynikiem jest TRUE lub FALSE , składające się z elementów pokazanych powyżej.
  3. (Opcjonalnie) tagColor , który może mieć wartość „ BLUE ”, „ BROWN ”, „ CYAN ”, „ DEEP_ORANGE ”, „ GREEN ”, „ INDIGO ”, „ LIME ”, „ ORANGE ”, „ PINK ”, „ PURPLE ” lub „ TEAL ”. W kolorze nie jest rozróżniana wielkość liter i wpływa tylko na sposób wyświetlania warunków w konsoli Firebase.

Obsługiwani operatorzy

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. 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.
Element Obsługiwani operatorzy Opis
app.audiences .inAtLeastOne([...]) Zwraca TRUE , jeśli rzeczywista grupa odbiorców pasuje do co najmniej jednej nazwy grupy odbiorców na liście.
Na przykład:

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

app.audiences .notInAtLeastOne([...]) Zwraca TRUE , jeśli rzeczywista grupa odbiorców nie pasuje do co najmniej jednej nazwy grupy odbiorców na liście.
app.audiences .inAll([...]) Zwraca TRUE , jeśli rzeczywista grupa odbiorców należy do każdej nazwy grupy odbiorców na liście.
app.audiences .notInAll([...]) Zwraca TRUE , jeśli rzeczywista grupa odbiorców nie jest członkiem żadnej grupy odbiorców na liście.
app.firstOpenTimestamp <=, > Porównuje czas zdarzenia first_open z czasem określonym w warunku i zwraca 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 określono żadnej strefy czasowej, używany jest czas GMT.
app.userProperty < , <= , == , != , >= , > Zwraca TRUE , jeśli rzeczywista właściwość użytkownika jest liczbowo porównywana z wartością określoną w sposób zgodny z operatorem.
app.userProperty .contains([...]) Zwraca TRUE , jeśli którakolwiek z wartości docelowych jest podciągiem rzeczywistej właściwości użytkownika.
app.userProperty .notContains([...]) Zwraca TRUE , jeśli żadna z wartości docelowych nie jest podciągiem rzeczywistej właściwości użytkownika.
app.userProperty .exactlyMatches([...]) Zwraca TRUE , jeśli rzeczywista właściwość użytkownika dokładnie pasuje (uwzględniana jest wielkość liter) dowolnej wartości docelowej na liście.
app.userProperty .matches([...]) Zwraca 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, należy poprzedzić wyrażenie regularne znakiem „^” i dodać do niego przyrostek „$”. Używa składni RE2 .
app.id == Zwraca TRUE , jeśli określona wartość jest zgodna z identyfikatorem aplikacji.
app.build < , <= , == , != , >= , > Zwraca TRUE , jeśli rzeczywista kompilacja aplikacji jest liczbowo porównywana z wartością określoną w sposób zgodny z operatorem.
app.build .contains([...]) Zwraca TRUE , jeśli którakolwiek z wartości docelowych jest podciągiem rzeczywistej kompilacji aplikacji — na przykład „a” i „bc” są podciągami „abc”.
app.build .notContains([...]) Zwraca TRUE , jeśli żadna z wartości docelowych nie jest podciągiem rzeczywistej kompilacji aplikacji.
app.build .exactlyMatches([...]) Zwraca TRUE , jeśli rzeczywista kompilacja aplikacji dokładnie odpowiada dowolnej wartości docelowej na liście.
app.build .matches([...]) Zwraca 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, należy poprzedzić wyrażenie regularne znakiem „^” i dodać do niego przyrostek „$”. Używa składni RE2 .
app.version < , <= , == , != , >= , > Zwraca TRUE , jeśli rzeczywista wersja aplikacji jest liczbowo porównywana z wartością określoną w sposób zgodny z operatorem.
app.version .contains([...]) Zwraca TRUE , jeśli którakolwiek z wartości docelowych jest podciągiem rzeczywistej wersji aplikacji — na przykład „a” i „bc” są podciągami „abc”.
app.version .notContains([...]) Zwraca TRUE , jeśli żadna z wartości docelowych nie jest podciągiem rzeczywistej wersji aplikacji.
app.version .exactlyMatches([...]) Zwraca TRUE , jeśli rzeczywista wersja aplikacji dokładnie odpowiada dowolnej wartości docelowej na liście.
app.version .matches([...]) Zwraca 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, należy poprzedzić wyrażenie regularne znakiem „^” i dodać do niego przyrostek „$”. Używa składni RE2 .
app.operatingSystemAndVersion .inOne([...]) Zwraca TRUE , jeśli system operacyjny i wersja odpowiadają dowolnej wartości docelowej na liście.
Na przykład:

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

app.browserAndVersion .inOne([...]) Zwraca TRUE , jeśli przeglądarka i wersja odpowiadają 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 odpowiada identyfikatorowi określonemu na liście. Przykładowe użycie: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] Zwraca TRUE , jeśli kraj urządzenia odpowiada krajowi określonemu 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 w zależności od operatora ocenia wartość TRUE lub FALSE . Przykładowe użycie: dateTime < dateTime('2017-03-22T13:39:44') .
device.language in [...] Zwraca 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 TRUE , jeśli system operacyjny urządzenia odpowiada wartości w tym polu pasującej do operatora.
percent <= , > , between Zwraca TRUE , jeśli wartość w polu percent jest porównywana z wartością, która została losowo przypisana zgodnie z operatorem.

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

W tym celu należy przed operatorem podać nazwę materiału siewnego, jak w poniższym 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 materiału początkowego :

percent between 20 and 60

Aby skonfigurować zakres użytkowników od 60 do 80 przy użyciu niestandardowego materiału początkowego:

percent('seedName') between 60 and 80