Automatycznie modyfikuj Zdalną konfigurację

Konfigurowanie szablonów za pomocą pakietu Admin SDK, interfejsu REST API i interfejsu wiersza poleceń Firebase. page_type: guide

Z tego dokumentu dowiesz się, jak programowo odczytywać i modyfikować zestaw parametrów i warunków w formacie JSON, czyli Remote Config szablon. Dzięki temu możesz wprowadzać zmiany w szablonie na backendzie, które aplikacja kliencka może pobierać za pomocą biblioteki klienta.

Korzystając z Remote Config interfejsu REST API, Admin SDKs lub Firebase interfejsu CLI opisanych w tym przewodniku, możesz pominąć zarządzanie szablonem w konsoli Firebase i bezpośrednio zintegrować zmiany Remote Config z własnymi procesami. Na przykład za pomocąRemote Config interfejsów API backendu możesz:

  • Zaplanuj Remote Config aktualizacje. Używaj wywołań interfejsu API w połączeniu z zadaniem cron, aby regularnie zmieniać wartości Remote Config.
  • Importuj wartości konfiguracji partiami, aby sprawnie przejść z własnego systemu na Firebase Remote Config.
  • Używaj Remote ConfigCloud Functions for Firebase, zmieniając wartości w aplikacji na podstawie zdarzeń, które mają miejsce po stronie serwera. Możesz na przykład użyć Remote Config do promowania nowej funkcji w aplikacji, a potem automatycznie wyłączyć tę promocję, gdy zauważysz, że wystarczająca liczba osób skorzystała z tej funkcji.

Diagram przedstawiający backend Zdalnej konfiguracji wchodzący w interakcję z niestandardowymi narzędziami i serwerami

W kolejnych sekcjach tego przewodnika opisujemy operacje, które możesz wykonywać za pomocą interfejsów API backendu Remote Config.

Modyfikowanie Remote Config za pomocą Firebase Admin SDK

Admin SDK to zestaw bibliotek serwera, które umożliwiają interakcję z Firebase w środowiskach uprzywilejowanych. Oprócz wykonywania aktualizacji Remote Config, Admin SDK umożliwia generowanie i weryfikowanie tokenów uwierzytelniania Firebase oraz odczytywanie i zapisywanie danych z Realtime Database. Więcej informacji o Admin SDK wymaganiach wstępnych i konfiguracji znajdziesz w artykule Dodawanie elementu Firebase Admin SDK do serwera.

Aby zapoznać się z przykładowym kodem, który wykonuje te zadania za pomocą Admin SDK, zobacz jedną z tych aplikacji do szybkiego rozpoczęcia:

W typowym procesie Remote Config możesz pobrać bieżący szablon, zmodyfikować niektóre parametry lub grupy parametrów i warunki, sprawdzić poprawność szablonu, a następnie go opublikować. Zanim wykonasz te wywołania interfejsu API, musisz autoryzować żądania z pakietu SDK.

Inicjowanie pakietu SDK i autoryzowanie żądań interfejsu API

Gdy zainicjujesz Admin SDK bez parametrów, pakiet SDK użyje domyślnego uwierzytelniania aplikacji Google i odczyta opcje ze zmiennej środowiskowej FIREBASE_CONFIG. Jeśli zawartość zmiennej FIREBASE_CONFIG zaczyna się od znaku {, zostanie ona przeanalizowana jako obiekt JSON. W przeciwnym razie SDK zakłada, że ciąg znaków jest nazwą pliku JSON zawierającego opcje.

Przykład:

Node.js

const admin = require('firebase-admin');
admin.initializeApp();

Java

FileInputStream serviceAccount = new FileInputStream("service-account.json");
FirebaseOptions options = FirebaseOptions.builder()
        .setCredentials(GoogleCredentials.fromStream(serviceAccount))
        .build();
FirebaseApp.initializeApp(options);

Pobieranie bieżącego szablonu Remote Config

Pamiętaj, że Remote Configszablony mają wersje, a każda wersja ma ograniczony okres ważności od momentu utworzenia do momentu zastąpienia jej aktualizacją: 90 dni, przy łącznym limicie 300 przechowywanych wersji. Więcej informacji znajdziesz w artykule Szablony i obsługa wersji.

Za pomocą interfejsów API backendu możesz pobrać aktualną aktywną wersję szablonuRemote Config w formacie JSON.

Parametry i wartości parametrów utworzone specjalnie jako warianty w A/B Testingeksperymencie nie są uwzględniane w eksportowanych szablonach.

Aby pobrać szablon:

Node.js

function getTemplate() {
  var config = admin.remoteConfig();
  config.getTemplate()
      .then(function (template) {
        console.log('ETag from server: ' + template.etag);
        var templateStr = JSON.stringify(template);
        fs.writeFileSync('config.json', templateStr);
      })
      .catch(function (err) {
        console.error('Unable to get template');
        console.error(err);
      });
}

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get();
// See the ETag of the fetched template.
System.out.println("ETag from server: " + template.getETag());

Modyfikowanie parametrów Remote Config

Możesz programowo modyfikować i dodawać parametry Remote Config oraz grupy parametrów. Na przykład do istniejącej grupy parametrów o nazwie „new_menu” możesz dodać parametr, który będzie kontrolować wyświetlanie informacji sezonowych:

Node.js

function addParameterToGroup(template) {
  template.parameterGroups['new_menu'].parameters['spring_season'] = {
    defaultValue: {
      useInAppDefault: true
    },
    description: 'spring season menu visibility.',
  };
}

Java

template.getParameterGroups().get("new_menu").getParameters()
        .put("spring_season", new Parameter()
                .setDefaultValue(ParameterValue.inAppDefault())
                .setDescription("spring season menu visibility.")
        );

Interfejs API umożliwia tworzenie nowych parametrów i grup parametrów oraz modyfikowanie wartości domyślnych, wartości warunkowych i opisów. W każdym przypadku po wprowadzeniu zmian musisz wyraźnie opublikować szablon.

Modyfikowanie warunków Remote Config

Możesz programowo modyfikować i dodawać Remote Config warunki i wartości warunkowe. Aby na przykład dodać nowy warunek:

Node.js

function addNewCondition(template) {
  template.conditions.push({
    name: 'android_en',
    expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']',
    tagColor: 'BLUE',
  });
}

Java

template.getConditions().add(new Condition("android_en",
        "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));

W każdym przypadku po wprowadzeniu zmian musisz wyraźnie opublikować szablon.

Interfejsy API backendu Remote Config udostępniają kilka warunków i operatorów porównania, których możesz używać do zmiany działania i wyglądu aplikacji. Więcej informacji o warunkach i operatorach obsługiwanych w przypadku tych warunków znajdziesz w dokumentacji wyrażeń warunkowych.

Weryfikowanie szablonu Remote Config

Opcjonalnie możesz sprawdzić zmiany przed ich opublikowaniem, jak pokazano poniżej:

Node.js

function validateTemplate(template) {
  admin.remoteConfig().validateTemplate(template)
      .then(function (validatedTemplate) {
        // The template is valid and safe to use.
        console.log('Template was valid and safe to use');
      })
      .catch(function (err) {
        console.error('Template is invalid and cannot be published');
        console.error(err);
      });
}

Java

try {
  Template validatedTemplate = FirebaseRemoteConfig.getInstance()
          .validateTemplateAsync(template).get();
  System.out.println("Template was valid and safe to use");
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Template is invalid and cannot be published");
    System.out.println(rcError.getMessage());
  }
}

Ten proces weryfikacji sprawdza, czy nie występują błędy, takie jak zduplikowane klucze parametrów i warunków, nieprawidłowe nazwy warunków lub nieistniejące warunki czy nieprawidłowo sformatowane tagi etag. Na przykład żądanie zawierające więcej niż dozwolona liczba kluczy – 2000 – zwróci komunikat o błędzie Param count too large.

Publikowanie szablonu Remote Config

Po pobraniu szablonu i wprowadzeniu w nim zmian możesz go opublikować. Opublikowanie szablonu zgodnie z opisem w tej sekcji zastępuje cały dotychczasowy szablon konfiguracji zaktualizowanym plikiem, a nowy aktywny szablon otrzymuje numer wersji o 1 większy od numeru szablonu, który zastąpił.

W razie potrzeby możesz użyć interfejsu REST API, aby wycofać zmiany do poprzedniej wersji. Aby zmniejszyć ryzyko błędów w aktualizacji, możesz sprawdzić ją przed opublikowaniem.

Remote Config personalizacje i warunki są uwzględniane w pobranych szablonach, dlatego podczas próby opublikowania w innym projekcie należy pamiętać o tych ograniczeniach:

  • Personalizacji nie można importować z jednego projektu do drugiego.

    Jeśli na przykład masz włączoną personalizację w projekcie, a pobierzesz i edytujesz szablon, możesz opublikować go w tym samym projekcie, ale nie możesz go opublikować w innym projekcie, chyba że usuniesz z niego personalizację.

  • Warunki można importować z projektu do projektu, ale pamiętaj, że przed opublikowaniem w projekcie docelowym powinny istnieć wszystkie konkretne wartości warunkowe (np. identyfikatory aplikacji lub listy odbiorców).

    Jeśli np. masz parametr Remote Config, który używa warunku określającego wartość platformy iOS, szablon można opublikować w innym projekcie, ponieważ wartości platformy są takie same w każdym projekcie. Jeśli jednak zawiera warunek, który zależy od konkretnego identyfikatora aplikacji lub listy odbiorców, która nie istnieje w projekcie docelowym, weryfikacja się nie powiedzie.

  • Jeśli szablon, który chcesz opublikować, zawiera warunki zależne od Google Analytics, w projekcie docelowym musi być włączona funkcja Analytics.

Node.js

function publishTemplate() {
  var config = admin.remoteConfig();
  var template = config.createTemplateFromJSON(
      fs.readFileSync('config.json', 'UTF8'));
  config.publishTemplate(template)
      .then(function (updatedTemplate) {
        console.log('Template has been published');
        console.log('ETag from server: ' + updatedTemplate.etag);
      })
      .catch(function (err) {
        console.error('Unable to publish template.');
        console.error(err);
      });
}

Java

try {
  Template publishedTemplate = FirebaseRemoteConfig.getInstance()
          .publishTemplateAsync(template).get();
  System.out.println("Template has been published");
  // See the ETag of the published template.
  System.out.println("ETag from server: " + publishedTemplate.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Unable to publish template.");
    System.out.println(rcError.getMessage());
  }
}

Modyfikowanie Remote Config za pomocą interfejsu API REST

W tej sekcji opisujemy główne możliwości interfejsu Remote Config REST API dostępnego pod adresem https://firebaseremoteconfig.googleapis.com. Szczegółowe informacje znajdziesz w dokumentacji API.

Uzyskiwanie tokena dostępu do uwierzytelniania i autoryzowania żądań do interfejsu API

Projekty Firebase obsługują konta usługi Google, których możesz używać do wywoływania interfejsów API serwera Firebase z serwera aplikacji lub zaufanego środowiska. Jeśli tworzysz kod lokalnie lub wdrażasz aplikację lokalnie, możesz użyć danych logowania uzyskanych za pomocą tego konta usługi do autoryzowania żądań serwera.

Wszystkie konta usługi w projekcie w Firebase możesz wyświetlić na karcie Ustawienia > Konta usługi.

Aby uwierzytelnić konto usługi i przyznać mu uprawnienia dostępu do usług Firebase, musisz wygenerować plik klucza prywatnego w formacie JSON.

Aby wygenerować plik klucza prywatnego dla konta usługi:

  1. W konsoli Firebase otwórz kartę Ustawienia > Konta usługi.

  2. Kliknij Wygeneruj nowy klucz prywatny, a potem potwierdź, klikając Wygeneruj klucz.

  3. Bezpiecznie przechowuj plik JSON zawierający klucz.

Podczas autoryzacji za pomocą konta usługi masz 2 możliwości przekazania danych logowania do aplikacji. Możesz ustawić zmienną środowiskową GOOGLE_APPLICATION_CREDENTIALS lub jawnie przekazać ścieżkę do klucza konta usługi w kodzie. Pierwsza opcja jest bezpieczniejsza i zdecydowanie zalecana.

Aby ustawić zmienną środowiskową:

Ustaw zmienną środowiskową GOOGLE_APPLICATION_CREDENTIALS na ścieżkę pliku JSON zawierającego klucz konta usługi. Ta zmienna jest stosowana tylko w bieżącej sesji powłoki, więc jeśli otworzysz nową sesję, ustaw ją ponownie.

Linux lub macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

Windows

W PowerShellu:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

Po wykonaniu powyższych czynności domyślne uwierzytelnianie aplikacji (ADC) będzie mogło niejawnie określać Twoje dane logowania, co umożliwi Ci używanie danych logowania konta usługi podczas testowania lub uruchamiania w środowiskach innych niż Google.

Użyj danych logowania Firebase wraz z biblioteką uwierzytelniania Google w preferowanym języku, aby pobrać krótkotrwały token dostępu OAuth 2.0:

node.js,

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

W tym przykładzie biblioteka klienta interfejsu Google API uwierzytelnia żądanie za pomocą tokena internetowego JSON (JWT). Więcej informacji znajdziesz w sekcji Tokeny sieciowe JSON.

Python

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Java

public static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

Gdy token dostępu wygaśnie, metoda odświeżania tokena zostanie wywołana automatycznie, aby pobrać zaktualizowany token dostępu.

Aby autoryzować dostęp do Remote Config, poproś o zakres https://www.googleapis.com/auth/firebase.remoteconfig.

Modyfikowanie szablonu Remote Config

Pamiętaj, że Remote Configszablony mają wersje, a każda z nich ma ograniczony okres ważności od momentu utworzenia do momentu zastąpienia jej aktualizacją: 90 dni, przy łącznym limicie 300 przechowywanych wersji. Więcej informacji znajdziesz w artykule Szablony i obsługa wersji.

Pobieranie bieżącego szablonu Remote Config

Za pomocą interfejsów API backendu możesz pobrać aktualną aktywną wersję szablonuRemote Config w formacie JSON.

Parametry i wartości parametrów utworzone specjalnie jako warianty w A/B Testingeksperymencie nie są uwzględniane w eksportowanych szablonach.

Użyj tych poleceń:

cURL

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename

To polecenie zapisuje ładunek JSON w jednym pliku, a nagłówki (w tym ETag) w osobnym pliku.

Nieprzetworzone żądanie HTTP

Host: firebaseremoteconfig.googleapis.com

GET /v1/projects/my-project-id/remoteConfig HTTP/1.1
Authorization: Bearer token
Accept-Encoding: gzip

To wywołanie interfejsu API zwraca poniższy kod JSON wraz z osobnym nagłówkiem, który zawiera ETag używany w kolejnym żądaniu.

Weryfikowanie szablonu Remote Config

Opcjonalnie możesz sprawdzić zmiany przed ich opublikowaniem. Sprawdź aktualizacje szablonu, dodając do żądania publikacji parametr adresu URL ?validate_only=true. W odpowiedzi kod stanu 200 i zaktualizowany tag ETag z sufiksem -0 oznaczają, że aktualizacja została zweryfikowana. Każda odpowiedź inna niż 200 oznacza, że dane JSON zawierają błędy, które musisz poprawić przed opublikowaniem.

Aktualizowanie szablonu Remote Config

Po pobraniu szablonu i zmodyfikowaniu treści JSON możesz go opublikować. Opublikowanie szablonu zgodnie z opisem w tej sekcji zastępuje cały dotychczasowy szablon konfiguracji zaktualizowanym plikiem, a nowy aktywny szablon otrzymuje numer wersji o 1 większy od numeru szablonu, który zastąpił.

W razie potrzeby możesz użyć interfejsu REST API, aby wycofać zmiany do poprzedniej wersji. Aby zmniejszyć ryzyko błędów w aktualizacji, możesz sprawdzić ją przed opublikowaniem.

Remote Config personalizacje i warunki są uwzględniane w pobranych szablonach, dlatego podczas próby opublikowania w innym projekcie należy pamiętać o tych ograniczeniach:

  • Personalizacji nie można importować z jednego projektu do drugiego.

    Jeśli na przykład masz włączoną personalizację w projekcie, a pobierzesz i edytujesz szablon, możesz opublikować go w tym samym projekcie, ale nie możesz go opublikować w innym projekcie, chyba że usuniesz z niego personalizację.

  • Warunki można importować z projektu do projektu, ale pamiętaj, że przed opublikowaniem w projekcie docelowym powinny istnieć wszystkie konkretne wartości warunkowe (np. identyfikatory aplikacji lub listy odbiorców).

    Jeśli np. masz parametr Remote Config, który używa warunku określającego wartość platformy iOS, szablon można opublikować w innym projekcie, ponieważ wartości platformy są takie same w każdym projekcie. Jeśli jednak zawiera warunek, który zależy od konkretnego identyfikatora aplikacji lub listy odbiorców, która nie istnieje w projekcie docelowym, weryfikacja się nie powiedzie.

  • Jeśli szablon, który chcesz opublikować, zawiera warunki zależne od Google Analytics, w projekcie docelowym musi być włączona funkcja Analytics.

cURL

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename

W przypadku tego polecenia curl możesz określić treść, używając znaku „@”, a następnie nazwy pliku.

Nieprzetworzone żądanie HTTP

Host: firebaseremoteconfig.googleapis.com
PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1
Content-Length: size
Content-Type: application/json; UTF8
Authorization: Bearer token
If-Match: expected ETag
Accept-Encoding: gzip
JSON_HERE

Ponieważ jest to żądanie zapisu, to polecenie modyfikuje ETag, a zaktualizowany ETag jest podawany w nagłówkach odpowiedzi następnego polecenia PUT.

Modyfikowanie warunków Remote Config

Możesz programowo modyfikować Remote Config warunki i wartości warunkowe. W przypadku interfejsu REST API musisz edytować szablon bezpośrednio, aby zmodyfikować warunki przed opublikowaniem szablonu.

{
  "conditions": [{
    "name": "android_english",
    "expression": "device.os == 'android' && device.country in ['us', 'uk']",
    "tagColor": "BLUE"
  }, {
    "name": "tenPercent",
    "expression": "percent <= 10",
    "tagColor": "BROWN"
  }],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "tenPercent": {
          "value": "Welcome to this new sample app"
        }
      },
      "description": "The sample app's welcome message"
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      },
      "conditionalValues": {
        "android_english": {
          "value": "true"
        }
      },
      "description": "Whether the welcome message should be displayed in all
      capital letters."
    }
  }
}

Zmiany w poprzednim fragmencie kodu najpierw definiują zestaw warunków, a następnie wartości domyślne i wartości parametrów oparte na warunkach (wartości warunkowe) dla każdego parametru. Dodają też opcjonalny opis każdego elementu. Podobnie jak komentarze do kodu, są one przeznaczone dla deweloperów i nie są wyświetlane w aplikacji. W celu kontroli wersji podawany jest też ETag.

Interfejsy API backendu Remote Config udostępniają kilka warunków i operatorów porównania, których możesz używać do zmiany działania i wyglądu aplikacji. Więcej informacji o warunkach i operatorach obsługiwanych w przypadku tych warunków znajdziesz w dokumentacji wyrażeń warunkowych.

Kody błędów HTTP

Kod stanu Znaczenie
200 Zaktualizowano
400 Wystąpił błąd weryfikacji. Na przykład żądanie zawierające więcej niż dozwolona liczba kluczy – 2000 – zwróci kod 400 (Nieprawidłowe żądanie) z komunikatem o błędzie Param count too large. Ten kod stanu HTTPS może też wystąpić w tych 2 sytuacjach:
  • Wystąpił błąd niezgodności wersji, ponieważ zestaw wartości i warunków został zaktualizowany od czasu ostatniego pobrania wartości ETag. Aby rozwiązać ten problem, użyj polecenia GET, aby pobrać nowy szablon i wartość ETag, zaktualizuj szablon, a następnie prześlij go wraz z nową wartością ETag.
  • Wydano polecenie PUT (prośba o zaktualizowanie szablonu Remote Config) bez podania nagłówka If-Match.
401 Wystąpił błąd autoryzacji (nie podano tokena dostępu lub interfejs API REST Firebase Remote Config nie został dodany do projektu w konsoli Cloud Developer Console).
403 Wystąpił błąd uwierzytelniania (podano nieprawidłowy token dostępu)
500 Wystąpił błąd wewnętrzny. Jeśli wystąpi ten błąd, wyślij zgłoszenie do zespołu pomocy Firebase

Kod stanu 200 oznacza, że szablon Remote Config (parametry, wartości i warunki projektu) został zaktualizowany i jest teraz dostępny dla aplikacji, które korzystają z tego projektu. Inne kody stanu wskazują, że nadal obowiązuje Remote Configszablon, który istniał wcześniej.

Po przesłaniu aktualizacji szablonu otwórz Firebase konsolę, aby sprawdzić, czy zmiany są widoczne zgodnie z oczekiwaniami. Jest to bardzo ważne, ponieważ kolejność warunków wpływa na sposób ich oceny (obowiązuje pierwszy warunek, który przyjmuje wartość true).

Używanie tagów ETag i wymuszanie aktualizacji

Interfejs Remote Config REST API używa tagu jednostki (ETag), aby zapobiegać wyścigom i nakładającym się aktualizacjom zasobów. Więcej informacji o tagach ETag znajdziesz w artykule ETag – HTTP.

W przypadku interfejsu REST API zalecamy buforowanie tagu ETag podanego przez najnowsze polecenie GET i używanie tej wartości tagu ETag w nagłówku żądania If-Match podczas wydawania poleceń PUT. Jeśli w wyniku polecenia PUT otrzymasz kod stanu HTTPS 409, wydaj nowe polecenie GET, aby uzyskać nowy tag ETag i szablon do użycia w następnym poleceniu PUT.

Możesz obejść tag ETag i zapewnianą przez niego ochronę, wymuszając aktualizację szablonu Remote Config w ten sposób:If-Match: *. Nie zalecamy jednak tego podejścia, ponieważ istnieje ryzyko utraty aktualizacji szablonu Remote Config, jeśli wielu klientów będzie aktualizować szablon Remote Config. Tego rodzaju konflikt może wystąpić w przypadku wielu klientów korzystających z interfejsu API lub w przypadku sprzecznych aktualizacji od klientów API i Firebaseużytkowników konsoli.

Wskazówki dotyczące zarządzania Remote Configwersjami szablonów znajdziesz w artykule Remote ConfigSzablony i obsługa wersji.

Modyfikowanie Remote Config za pomocą interfejsu wiersza poleceń Firebase

Interfejs wiersza poleceń Firebase umożliwia sprawdzanie szablonów, zarządzanie nimi i ich wycofywanie zmianRemote Config, a także wyświetlanie, sprawdzanie i usuwanie eksperymentów i wdrażaniaRemote Config bezpośrednio z wiersza poleceń.

Wymagania wstępne i konfiguracja

  1. Zainstaluj interfejs wiersza poleceń Firebase lub zaktualizuj go do najnowszej wersji.

  2. Zaloguj się w usłudze Firebase:

    firebase login
  3. Ustaw aktywny projekt lub określ --project PROJECT_ID w każdym poleceniu:

    firebase use PROJECT_ID

Sprawdź, czy Twoje konto lub konto usługi ma wymagane uprawnienia:

Podsumowanie poleceń interfejsu wiersza poleceń

Polecenie Opis
firebase remoteconfig:versions:list Wyświetla listę ostatnich wersji szablonu Remote Config.
firebase remoteconfig:get Pobiera szablon Remote Config (opcjonalnie zapisując go w pliku).
firebase remoteconfig:rollback Przywraca poprzednią wersję szablonu Remote Config.
firebase remoteconfig:experiments:list Wyświetla wszystkie eksperymenty Remote Config w projekcie.
firebase remoteconfig:experiments:get Pobiera szczegóły konkretnego eksperymentu Remote Config.
firebase remoteconfig:experiments:delete Usuwa konkretny Remote Config eksperyment.
firebase remoteconfig:rollouts:list Wyświetla wszystkie Remote Config wdrożenia w projekcie.
firebase remoteconfig:rollouts:get Pobiera szczegóły konkretnego wdrożenia Remote Config.
firebase remoteconfig:rollouts:delete Usuwa konkretne Remote Config wdrożenie.

Modyfikowanie szablonów i wersji Remote Config

Użyj tych poleceń, aby sprawdzić, pobrać i wycofać zmiany w szablonach Remote Config oraz ich historii zmian:

Wyświetlanie listy wersji szablonu

Wyświetla domyślnie 10 najnowszych wersji szablonu Remote Config, w tym numer wersji, czas aktualizacji, źródło aktualizacji, typ aktualizacji i updateUser.

firebase remoteconfig:versions:list [--limit NUMBER_OF_VERSIONS]
  • --limit NUMBER_OF_VERSIONS: Maksymalna liczba wersji do zwrócenia. Wpisz 0, aby zwrócić wszystkie istniejące wersje (maksymalnie 300 zapisanych wersji).

Przykłady:

  • Wyświetl 10 najnowszych wersji:

    firebase remoteconfig:versions:list
  • Wyświetl wszystkie dostępne wersje:

    firebase remoteconfig:versions:list --limit 0
  • Wyświetl 5 najnowszych wersji:

    firebase remoteconfig:versions:list --limit 5

Pobieranie szablonu

Pobiera szablon Remote Config i zwraca grupy parametrów, parametry, nazwy warunków i wersję. Domyślnie pobiera najnowszą aktywną wersję i wyświetla sformatowane podsumowanie w terminalu.

firebase remoteconfig:get [-v, --version_number VERSION_NUMBER] [-o, --output FILENAME]
  • -v, --version_number VERSION_NUMBER: numer wersji szablonu do pobrania. Jeśli go pominiesz, domyślnie tag będzie w najnowszej wersji.
  • -o, --output FILENAME: zapisuje ładunek JSON szablonu bezpośrednio w określonej ścieżce zamiast wyświetlać go w standardowym wyjściu.

Przykłady:

  • Wyświetl bieżący aktywny szablon w terminalu:

    firebase remoteconfig:get
  • Pobierz bieżący aktywny szablon do pliku JSON:

    firebase remoteconfig:get -o remote_config_template.json
  • Pobierz do pliku konkretną wersję historyczną (np. wersję 12):

    firebase remoteconfig:get -v 12 -o remote_config_v12.json

Wycofywanie szablonu

Przywraca aktywny szablon Remote Config do poprzedniej wersji. Spowoduje to utworzenie nowej aktywnej wersji, której zawartość jest identyczna z wersją docelową.

firebase remoteconfig:rollback [-v, --version_number VERSION_NUMBER] [--force]
  • -v, --version_number VERSION_NUMBER: numer wersji docelowej, do której chcesz wycofać zmiany. Jeśli go pominiesz, domyślnie będzie to wersja bezpośrednio poprzedzająca (bieżąca wersja minus 1).
  • --force: natychmiast wycofuje zmiany bez wyświetlania prośby o interaktywne potwierdzenie (Y/N). Przydatne w przypadku potoków CI/CD i skryptów automatycznych.

Przykłady:

  • Wycofaj zmiany do poprzedniej wersji z interaktywnym potwierdzeniem:

    firebase remoteconfig:rollback
  • Wycofaj zmiany do wersji 8 bez wyświetlania monitu:

    firebase remoteconfig:rollback -v 8 --force

Modyfikowanie eksperymentów A/B Testing

Aby wyświetlić, sprawdzić i usunąć eksperymenty Remote Config A/B Testing bezpośrednio za pomocą interfejsu wiersza poleceń, użyj tych poleceń:

Wyświetlanie listy eksperymentów

Wyświetla listę wszystkich Remote Config eksperymentów w projekcie z opcjonalnym filtrowaniem i stronicowaniem.

firebase remoteconfig:experiments:list [--filter EXPRESSION] [--pageSize NUMBER] [--pageToken TOKEN]
  • --filter EXPRESSION: Wyrażenie filtra, które ma być zastosowane do listy eksperymentów.
  • --pageSize NUMBER: Liczba eksperymentów do zwrócenia na stronie (domyślnie 10).
  • --pageToken TOKEN: token przesunięcia strony podczas pobierania wyników podzielonych na strony.

Przykład:

firebase remoteconfig:experiments:list

Pobieranie szczegółów eksperymentu

Pobiera pełne informacje o określonym eksperymencie Remote Config.

firebase remoteconfig:experiments:get EXPERIMENT_ID

Przykład:

firebase remoteconfig:experiments:get exp_promo_discount_2026

Usuwanie eksperymentu

Usuwa określony Remote Configeksperyment.

firebase remoteconfig:experiments:delete EXPERIMENT_ID

Przykład:

firebase remoteconfig:experiments:delete exp_promo_discount_2026

Modyfikowanie wdrożeń Remote Config

Aby wyświetlić, sprawdzić i usunąć Remote Configwdrożenia bezpośrednio za pomocą interfejsu wiersza poleceń, użyj tych poleceń:

Lista wdrożeń

Wyświetla listę wszystkich Remote Config wdrożeń projektu z opcjonalnym filtrowaniem i stronicowaniem.

firebase remoteconfig:rollouts:list [--filter EXPRESSION] [--pageSize NUMBER] [--pageToken TOKEN]
  • --filter EXPRESSION: Wyrażenie filtra, które ma być zastosowane do listy wdrożenia.
  • --pageSize NUMBER: liczba wdrożeń do zwrócenia na stronę (domyślnie 10).
  • --pageToken TOKEN: token przesunięcia strony podczas pobierania wyników podzielonych na strony.

Przykład:

firebase remoteconfig:rollouts:list

Wyświetlanie szczegółów wdrożenia

Pobiera szczegółowe informacje o określonym Remote Configwdrożeniu.

firebase remoteconfig:rollouts:get ROLLOUT_ID

Przykład:

firebase remoteconfig:rollouts:get rollout_new_checkout_flow

Usuwanie wdrażania

Usuwa określone wdrożenie Remote Config.

firebase remoteconfig:rollouts:delete ROLLOUT_ID

Przykład:

firebase remoteconfig:rollouts:delete rollout_new_checkout_flow

Więcej ogólnych informacji o poleceniach interfejsu Firebase znajdziesz w Firebasedokumentacji interfejsu.