Odwołanie do wyrażenia warunkowego Zdalnej konfiguracji

Ta strona zawiera informacje referencyjne na temat tworzenia wyrażeń warunkowych za pomocą Remote Config interfejsów backendowych 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 API REST Remote Config 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” dla elementów, jeśli w warunku jest używanych więcej niż 1 element. Jeśli element jest używany w składni REST bez parametru && , jest on traktowany jako warunek.

Uwaga: przed i za symbolem „&” musi być spacja. Przykład:element1 && element2.

app.build

Wynik jest TRUE lub FALSE w zależności od wartości numeru kompilacji aplikacji.

Uwaga: funkcja 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

Wynik funkcji to TRUE lub FALSE w zależności od 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 na podstawie identyfikatora aplikacji Firebase.
app.audiences Element, który przyjmuje wartość TRUE lub FALSE w zależności od tego, czy użytkownik znajduje się na co najmniej 1 liście odbiorców Analytics w Firebase.
app.firstOpenTimestamp Element określający, czy użytkownik uruchomił aplikację po raz pierwszy. Dane pochodzą 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 zostanie określona strefa czasowa, zostanie użyta strefa GMT.
app.userProperty Element, który zwraca wartość TRUE lub FALSE na podstawie wartości numerycznej 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. Wynik to 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 zależny od przeglądarki, w której działa aplikacja. Ocenia 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 na urządzeniu. Zwraca wartość TRUE, gdy identyfikator instalacji jest zgodny z jednym ze wskazanych identyfikatorów instalacji.
app.customSignal Element, który zwraca wartość TRUE lub FALSE na podstawie wartości liczbowej, semantycznej lub ciągu znaków warunków niestandardowego sygnału.
device.country Element określający region lub kraj, w którym znajduje się urządzenie, zgodnie ze standardem ISO 3166-1 alfa-2 (np. PL lub UK). Wynik funkcji to TRUE, gdy kraj jest zgodny z oczekiwanym kodem kraju.
device.dateTime Element na podstawie czasu ostatniego pobierania przez urządzenie. Używa formatu daty ISO z opcją , aby określić stałą strefę czasową, na przykład 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. Ocenia element 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). przyjmuje wartość TRUE, gdy system operacyjny urządzenia jest zgodny z oczekiwaniami;
percent Funkcja TRUE jest oceniana na podstawie przypisania losowego ułamka procentowego (z wielkościami próby wynoszącymi nawet 0,000001%), w którym użytkownik jest uwzględniony.

Warunek jednoelementowy zawiera 3 pola:

  1. dowolnie zdefiniowany name (maksymalnie 100 znaków)
  2. wyrażenie warunkowe o wartości TRUE lub FALSE, złożone z elementów wymienionych powyżej;
  3. (Opcjonalnie) tagColor, który może mieć wartość „BLUE”, „BROWN”, „CYAN”, „DEEP_ORANGE”, „GREEN”, „INDIGO”, „LIME”, „ORANGE”, „PINK”, „PURPLE” lub „TEAL”. Kolor jest nieistotny 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 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 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 wartość TRUE, jeśli rzeczywista lista odbiorców zawiera 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 rzeczywisty odbiorca nie pasuje do co najmniej jednej nazwy odbiorcy na liście.
app.audiences .inAll([...]) Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców zawiera wszystkie nazwy list odbiorców na liście.
app.audiences .notInAll([...]) Zwraca wartość TRUE, jeśli rzeczywista lista odbiorców nie zawiera żadnego odbiorcy z listy.
app.firstOpenTimestamp <=, > Porównuje czas zdarzenia first_open ze wskazanym czasem w warunku i zwraca wartość TRUE lub FALSE w zależności od operatora.
Przykład użycia:
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ślisz strefy czasowej, zostanie użyta strefa GMT.
app.userProperty <, <=, ==, !=, >=, > Zwraca wartość TRUE, jeśli rzeczywista właściwość użytkownika jest porównywana numerycznie do wartości określonej w sposób zgodny z operatorem.
app.userProperty .contains([...]) Zwraca wartość TRUE, jeśli którakolwiek z wartości docelowych jest podciągiem ciągu znaków właściwości użytkownika.
app.userProperty .notContains([...]) Zwraca TRUE, jeśli żadna z wartości docelowych nie jest podciągiem ciągu znaków w rzeczywistej właściwości użytkownika.
app.userProperty .exactlyMatches([...]) Zwraca 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 podciągu znaków lub całej wartości. Aby wymusić dopasowanie całego ciągu znaków, poprzedzaj wyrażenie regularne znakiem „^”, a na końcu umieść znak „$”. Używaj składni RE2.
app.id == Zwraca TRUE, jeśli podana wartość pasuje do identyfikatora aplikacji.
app.build <, <=, ==, !=, >=, > Zwraca wartość TRUE, jeśli numeryczna wersja kompilacji aplikacji jest porównywana do wartości określonej w sposób pasujący do operatora.
app.build .contains([...]) Zwraca TRUE, jeśli dowolna z wartości docelowych jest podciągiem ciągu znaków w rzeczywistym kompilacji aplikacji – np. „a” i „bc” są podciągiem ciągu znaków w „abc”.
app.build .notContains([...]) Zwraca TRUE, jeśli żadna z wartości docelowych nie jest podciągiem ciągu znaków rzeczywistej kompilacji aplikacji.
app.build .exactlyMatches([...]) Zwraca TRUE, jeśli rzeczywiste kompilacje aplikacji dokładnie pasują 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 podciągu znaków lub całej wartości. Aby wymusić dopasowanie całego ciągu znaków, poprzedz wyrażenie regularne znakiem „^”, a następnie zakończ je znakiem „$”. Użyj składni RE2.
app.version <, <=, ==, !=, >=, > Zwraca TRUE, jeśli rzeczywista wersja aplikacji jest porównywana liczbowo do wartości określonej w sposób pasujący do operatora.
app.version .contains([...]) Zwraca TRUE, jeśli którakolwiek z wartości docelowych jest podciągiem znaków wersji aplikacji. Na przykład „a” i „bc” są podciągiem znaków ciągu „abc”.
app.version .notContains([...]) Zwraca wartość TRUE, jeśli żadna z wartości docelowych nie jest podciągiem podcięcia rzeczywistej wersji aplikacji.
app.version .exactlyMatches([...]) Zwraca TRUE, jeśli rzeczywista wersja aplikacji dokładnie pasuje do 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 znaków lub całej wartości. Aby wymusić dopasowanie całego ciągu znaków, poprzedz wyrażenie regularne znakiem „^”, a na końcu umieść znak „$”. Użyj składni RE2.
app.operatingSystemAndVersion .inOne([...]) Zwraca wartość TRUE, jeśli system operacyjny i jego 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 są zgodne z dowolną 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 jest zgodny z którymś z identyfikatorów 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 liczbowo porównywany z wartością określoną w sposób pasujący do operatora.
app.customSignal .contains([...]) Zwraca TRUE, jeśli dowolna z wartości docelowych jest podciągiem ciągu znaków w rzeczywistym warunku sygnału niestandardowego.
app.customSignal .notContains([...]) Zwraca wartość TRUE, jeśli któraś z wartości docelowych jest podciągiem ciągu znaków w rzeczywistym warunku sygnału niestandardowego.
app.customSignal .exactlyMatches([...]) Zwraca wartość TRUE, jeśli rzeczywisty warunek sygnału niestandardowego dokładnie (z uwzględnieniem wielkości liter) pasuje do dowolnej wartości docelowej na liście.
app.customSignal .matches([...]) Zwraca wartość TRUE, jeśli dowolne docelowe wyrażenie regularne na liście pasuje do podciągu znaków lub całego warunku sygnału niestandardowego. Aby wymusić dopasowanie całego ciągu znaków, poprzedz wyrażenie regularne znakiem „^”, a następnie zakończ je znakiem „$”. Używaj składni RE2.
version(app.customSignal) <, <=, ==, !=, >=, > Zwraca TRUE, jeśli warunek niestandardowego sygnału semantycznie porównuje się 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 na liście. Przykład 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 docelowym czasem warunku i zwraca wartość TRUE lub FALSE w zależności od operatora. Przykład użycia: 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ład użycia: device.language in ['en-UK', 'en-US'].
device.os ==, != Zwraca TRUE, jeśli system operacyjny urządzenia porównuje do wartości w tym polu, która pasuje do operatora.
percent <=, >, between Zwraca wartość TRUE, jeśli wartość w polu percent jest porównywana do wartości przypisanej losowo, która pasuje do operatora.

Możesz podać wartość początkową, aby wybrać nową losowo przypisaną grupę instancji aplikacji dla danego zakresu procentowego, jak opisano w sekcji Typy reguł warunków.

Aby to zrobić, przed operatorem podaj nazwę nasienia, 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 z wykorzystaniem wartości domyślnej:

percent between 20 and 60

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

percent('seedName') between 60 and 80