Szablony Zdalnej konfiguracji i obsługa wersji

.

Szablony Zdalnej konfiguracji to zbiory w formacie JSON parametrów i warunków utworzonych przez Ciebie na potrzeby projektu Firebase. Ty może tworzyć szablony klientów, z których aplikacja pobiera wartości; serwerów, z których klienty serwera mogą pobierać wartości.

W tej sekcji omówione są szablony klientów. Więcej informacji o ustawieniach serwera szablonów, kliknij Szablony serwera.

Szablon możesz modyfikować i zarządzać nim w konsoli Firebase, która wyświetla zawartość szablonu w formacie graficznym w Parametry oraz Karty Warunki.

Możesz też użyć usługi interfejs API typu REST Zdalnej konfiguracji i pakiet Admin SDK lub interfejsu wiersza poleceń Firebase, aby modyfikować szablon klienta.

Oto przykład pliku szablonu serwera:

{
  "parameters": {
    "preamble_prompt": {
      "defaultValue": {
        "value": "You are a helpful assistant who knows everything there is to know about Firebase! "
      },
      "description": "Add this prompt to the user's prompt",
      "valueType": "STRING"
    },
    "model_name": {
      "defaultValue": {
        "value": "gemini-pro-test"
      },
      "valueType": "STRING"
    },
    "generation_config": {
      "defaultValue": {
        "value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
      },
      "valueType": "JSON"
    },
  },
  "version": {
    "versionNumber": "19",
    "isLegacy": true
  }
}

W konsoli Firebase możesz wykonywać te zadania związane z zarządzaniem wersjami:

  • Wyświetl listę wszystkich przechowywanych wersji szablonów
  • Pobieranie konkretnej wersji
  • Przywracanie określonej wersji klienta
  • Usuń szablony Zdalnej konfiguracji ze zmiany historia strona

Obowiązuje limit 300 przechowywanych wersji bezterminowo na typ szablonu. (300 szablonów klienta i 300 szablonów serwera), w tym zapisane numerów wersji usuniętych szablonów. Jeśli opublikujesz więcej niż 300 wersji szablonów według typu szablonu w czasie trwania projektu, najwcześniejszych wersji zostaje usuniętych, zachowując maksymalnie 300 tego typu.

Po każdym zaktualizowaniu parametrów Zdalna konfiguracja tworzy nowy szablon Zdalnej konfiguracji z obsługą wersji i przechowuje poprzedni jako wersję, którą możesz pobrać lub przywrócić zależnie od potrzeb. Numery wersji są zwiększane sekwencyjnie od wartości początkowej zapisanej przez Zdalną konfigurację. Wszystkie szablony zawierają pole version, jak pokazano na ilustracji, z metadanymi na ten temat. konkretnej wersji.

W razie potrzeby możesz usunąć szablony Zdalnej konfiguracji z Historia zmian w w konsoli Zdalnej konfiguracji.

Zarządzanie wersjami szablonów Zdalnej konfiguracji

W tej sekcji dowiesz się, jak zarządzać wersjami Zdalnej konfiguracji. szablon.

Wyświetl listę wszystkich zapisanych wersji szablonu Zdalnej konfiguracji

Możesz pobrać listę wszystkich zapisanych wersji szablonu Zdalnej konfiguracji. Aby to zrobić:

Konsola Firebase

Na karcie Parametry wybierz „zegar” w prawym górnym rogu. Otworzy się Historia zmian w menu po prawej stronie z listą wszystkich przechowywanych wersji szablonów.

Szczegóły wyświetlane w przypadku każdej zapisanej wersji zawierają informacje o tym, czy zmian pochodzących z konsoli (przy użyciu interfejsu API REST) po przywróceniu czy zmiany przyrostowe wynikające z wymuszonego zapisu szablonu.

wiersz poleceń Firebase

firebase remoteconfig:versions:list

Aby ograniczyć liczbę zwracanych wersji, użyj opcji --limit. Pomyśl „0” pobierz wszystkie wersje.

Node.js

function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}

Java

ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
while (page != null) {
  for (Version version : page.getValues()) {
    System.out.println("Version: " + version.getVersionNumber());
  }
  page = page.getNextPage();
}

// Iterate through all versions. This will still retrieve versions in batches.
page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
for (Version version : page.iterateAll()) {
  System.out.println("Version: " + version.getVersionNumber());
}

REST

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

Lista szablonów zawiera metadane wszystkich przechowywanych wersji, w tym datę aktualizacji, nazwę użytkownika, który ją dokonał, i sposób jej przeprowadzenia. Oto przykład elementu wersji:

```json
{
  "versions": [{
    "version_number": "6",
    "update_time": "2022-05-12T02:38:54Z",
    "update_user": {
      "name": "Jane Smith",
      "email": "jane@developer.org",
      "imageUrl": "https://lh3.googleusercontent.com/a-/..."
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]
}
```

Pobieranie konkretnej wersji szablonu Zdalnej konfiguracji

Możesz pobrać wszystkie zapisane dane, wersji szablonu Zdalnej konfiguracji. Aby pobrać zapisany szablon wersja:

Konsola Firebase

Domyślnie okienko szczegółów w Karta Historia zmian wyświetla bieżący aktywny szablon. Do wyświetlania szczegóły innej wersji z listy, wybierz ją z menu po prawej stronie.

Możesz wyświetlić szczegółowe różnice między obecnie wybraną wersją a dowolnymi zapisanej wersji po najechaniu kursorem na menu kontekstowe dowolnej niewybranej wersji i kliknij Porównaj z wybraną wersją.

wiersz poleceń Firebase

firebase remoteconfig:get -v VERSION_NUMBER

Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku przy użyciu -o, FILENAME.

Node.js

Powodzenie: getTemplate() bez żadnych argumentów umożliwiających pobranie najnowszej wersji szablonu, Aby pobrać konkretną wersję, użyj polecenia getTemplateAtVersion().

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get();
// See the ETag of the fetched template.
System.out.println("Successfully fetched the template with ETag: " + template.getETag());

REST

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6

Parametr adresu URL ?version_number jest prawidłowy tylko w przypadku operacji GET. nie można go użyć do określenia numerów wersji na potrzeby aktualizacji. Podobne żądania bez ?version_number pobierze bieżący aktywny szablon.

Cofnięcie do określonej zapisanej wersji szablonu Zdalnej konfiguracji

Możesz wrócić do dowolnego zapisanego wersji szablonu. Aby przywrócić poprzednią wersję szablonu:

Konsola Firebase

W przypadku poprzednich wersji szablonu kwalifikujących się do przywrócenia przycisk opcji przywracania do danej wersji jest widoczny w prawym górnym rogu Historia zmian stronę. Kliknij i potwierdź tę opcję tylko wtedy, gdy na pewno chcesz wrócić do poprzedniej wersji wersji i używaj tych wartości od razu w przypadku wszystkich aplikacji i użytkowników.

wiersz poleceń Firebase

firebase remoteconfig:rollback -v VERSION_NUMBER

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

Java

try {
  Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get();
  System.out.println("Successfully rolled back to template version: " + versionNumber);
  System.out.println("New ETag: " + template.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Error trying to rollback template.");
    System.out.println(rcError.getMessage());
  }
}

REST

Aby przywrócić zapisany szablon Zdalnej konfiguracji, wyślij żądanie HTTP POST z metoda niestandardowa :rollback oraz konkretna wersja w treści żądania . Przykład:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'

Odpowiedź zawiera zawartość obecnie aktywnego zapisanego szablonu, a przy tym metadanych nowej wersji.

Pamiętaj, że ta operacja przywracania tworzy nową wersję numerowaną. na przykład przejście z wersji 10 na wersję 6, tworzy nową kopię wersji 6, różniącą się niż oryginalna wersja, pod warunkiem, że numer wersji to 11. Oryginalna wersja 6 jest nadal przechowywany, zakładając, że nie upłynął jeszcze termin wygaśnięcia wersji, a wersja 11 stanie się szablonem aktywnym.

Usuń szablon Zdalnej konfiguracji

Szablony Zdalnej konfiguracji możesz usunąć z poziomu konsoli Firebase. Do usuń szablon Zdalnej konfiguracji:

1. Z poziomu Zdalnej konfiguracji Parametry kliknij Historia zmian.
  1. Przejdź do szablonu, który chcesz usunąć, i kliknij Więcej, a następnie wybierz Usuń.

  2. Gdy pojawi się prośba o potwierdzenie usunięcia, kliknij Usuń.

Pobieranie i publikowanie szablonów Zdalnej konfiguracji

Pobierz i opublikuj szablony Zdalnej konfiguracji, aby zintegrować je ze swoim kontrola źródła i systemy kompilacji, automatyzowanie aktualizacji konfiguracji oraz zachowywanie parametrów i wartości w wielu projektach.

Możesz pobrać aktywny szablon Zdalnej konfiguracji z poziomu konsoli Firebase. Następnie możesz zaktualizować wyeksportować plik JSON i opublikować go w tym samym projekcie albo opublikować w nowym lub istniejącego projektu.

Załóżmy, że masz kilka projektów reprezentujących różne etapy cykl tworzenia oprogramowania, np. programowanie, testowanie, testowanie i produkcja w różnych środowiskach. W takiej sytuacji możesz promować w pełni przetestowany szablon ze swojej środowiska testowego do środowiska produkcyjnego. Pobierz je ze swojego i opublikować projekt w projekcie produkcyjnym.

Za pomocą tej metody możesz też przenieść konfiguracje z jednego projektu do inny lub zapełnić nowy projekt parametrami i wartościami z i gotowego projektu.

Parametry i ich wartości utworzone specjalnie jako warianty w parametrze Eksperyment z testami A/B nie jest uwzględniany w eksportowanych szablonach.

Aby wyeksportować lub zaimportować szablony Zdalnej konfiguracji:

  1. Pobierz aktualny szablon Zdalnej konfiguracji.
  2. Zweryfikuj szablon Zdalnej konfiguracji.
  3. Opublikuj szablon Zdalnej konfiguracji.

Pobierz bieżący szablon Zdalnej konfiguracji

Użyj tego kodu, aby pobrać aktywny szablon Zdalnej konfiguracji w: Format JSON:

Konsola Firebase

  1. Z poziomu Parametry lub warunki Zdalnej konfiguracji otwórz Menu i Wybierz Pobierz bieżący plik konfiguracyjny.
  2. Gdy pojawi się prośba, kliknij Pobierz plik konfiguracyjny i wybierz lokalizację, w której chcesz zapisać plik, a potem kliknij Zapisz.

wiersz poleceń Firebase

firebase remoteconfig:get -o filename

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());

REST

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

Wywołuje ono ładunek JSON do jednego pliku, a nagłówki (w tym ETag) do osobnego pliku headers.

Weryfikowanie szablonu Zdalnej konfiguracji

Przed opublikowaniem aktualizacji w szablonie możesz sprawdzić je za pomocą pakietu Firebase Admin SDK lub interfejsu API REST. Szablony są również weryfikowane, gdy próbujesz do opublikowania z poziomu interfejsu wiersza poleceń Firebase lub konsoli Firebase.

Proces weryfikacji szablonu sprawdza ewentualne błędy, na przykład zduplikowane klucze parametrów i warunków, nieprawidłowych nazw warunków lub nieistniejących warunków lub niewłaściwie sformatowanych tagów ETag. Na przykład żądanie zawierające więcej niż dozwolone Liczba kluczy – 2000 – zwraca komunikat o błędzie: Param count too large.

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());
  }
}

REST

Zweryfikuj aktualizacje szablonu, dołączając parametr URL ?validate_only=true do prośby o publikację.

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?validate_only=true -d @filename

Jeśli weryfikacja szablonu przebiegła pomyślnie, polecenie curl zwróci Przesłanym przez Ciebie szablonem JSON znajduje się w zapisanym pliku headers ze stanem HTTP/2 200 i zaktualizowanym tagiem ETag z sufiksem -0. Jeśli nie został zweryfikowany szablon, w Odpowiedź JSON i plik headers będą zawierać odpowiedź inną niż 200 (i nie ma ETag).

Opublikuj szablon Zdalnej konfiguracji.

Po pobraniu szablonu wprowadź niezbędne zmiany w treści JSON. aby go sprawdzić, możesz opublikować go w projekcie.

Opublikowanie szablonu powoduje zastąpienie całego istniejącego szablonu konfiguracji zaktualizowany i zwiększa wersję szablonu o jeden. Ponieważ cały zostanie zastąpiona, jeśli usuniesz parametr z pliku JSON po jego opublikowaniu, parametr zostanie usunięty z serwera i nie będzie już dostępny nowych klientów.

Po opublikowaniu zmiany parametrów i wartości są dostępne od razu do aplikacji i użytkowników. W razie potrzeby przywrócić poprzednią wersję.

Aby opublikować szablon, użyj tych poleceń:

Konsola Firebase

  1. Z poziomu Parametry lub warunki Zdalnej konfiguracji otwórz Menu, i wybierz Opublikuj z pliku.
  2. Gdy pojawi się komunikat, kliknij Przeglądaj, przejdź do plik Zdalnej konfiguracji, który chcesz opublikować, a następnie kliknij Wybierz;
  3. Plik zostanie zweryfikowany. Jeśli operacja się uda, kliknij Opublikuj, aby od razu udostępnić konfigurację aplikacji i użytkowników.

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());
  }
}

REST

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 treść możesz określić za pomocą znaku „@” , a po nim nazwa pliku.

Personalizacje i warunki Zdalnej konfiguracji są uwzględnione w pobranych szablonów. Pamiętaj o tych kwestiach: podczas próby opublikowania w innym projekcie:

  • Nie można importować personalizacji z projektu do projektu.

    Jeśli na przykład w projekcie masz włączone personalizacje pobrać i edytować szablon, można go opublikować projektu, ale nie możesz go opublikować w innym projekcie, chyba że go usuniesz personalizacje z szablonu.

  • Warunki można importować z projektu do projektu, ale pamiętaj, że każdy określonych wartości warunkowych (np. identyfikatory aplikacji lub listy odbiorców) powinny występować w projektu docelowego przed opublikowaniem.

    Jeśli na przykład masz parametr Zdalnej konfiguracji, który korzysta z warunku określające wartość platformy wynoszącą iOS, szablon może zostać opublikowany do innego projektu, ponieważ wartości platformy są dla każdego projektu takie same. Jeśli jednak zawiera warunek, który zależy od określonego identyfikatora aplikacji lub użytkownika odbiorcy, których nie ma w projekcie docelowym, weryfikacja się nie powiedzie.

  • Jeśli szablon, który zamierzasz opublikować, zawiera warunki oparte na Google Analytics należy włączyć w kampanii docelowej w projektach AI.

Pobierz domyślne szablony Zdalnej konfiguracji

Aplikacja nie zawsze ma połączenie z internetem, należy skonfigurować domyślne wartości aplikacji po stronie klienta dla całej Zdalnej konfiguracji . Co jakiś czas należy też synchronizować domyślne ustawienia klienta aplikacji. i domyślne wartości parametrów backendu Zdalnej konfiguracji, ponieważ mogą się zmienić.

Zgodnie z opisem w linkach dotyczących poszczególnych platform na końcu tej sekcji możesz ręcznie ustawić te wartości domyślne w aplikacji. Możesz też uprościć ten proces, pobieranie plików zawierających tylko pary klucz-wartość dla wszystkich parametrów; i ich wartości domyślne w aktywnym szablonie Zdalnej konfiguracji. Następnie możesz: uwzględnić ten plik w projekcie i skonfigurować importowanie tych wartości w aplikacji.

Dla aplikacji na Androida możesz pobrać te pliki w formacie XML, format listy właściwości (plist) w przypadku aplikacji na iOS i JSON w przypadku aplikacji internetowych.

Zalecamy okresowe pobieranie ustawień domyślnych Zdalnej konfiguracji przed wprowadzeniem wersji aplikacji, aby zapewnić, że aplikacja i backend Zdalnej konfiguracji pozostaną w synchronizację.

Aby pobrać plik zawierający wartości domyślne szablonu:

REST

curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'

Użyj wartości XML, PLIST lub JSON jako wartości format w zależności od tego, który plik w formacie, który chcesz pobrać.

Konsola Firebase

  1. Na karcie Parametry otwórz Menu i wybierz Pobierz wartości domyślne.
  2. Gdy pojawi się odpowiedni komunikat, kliknij przycisk odpowiadający odpowiedniemu plikowi. w formacie, który chcesz pobrać, i kliknij Pobierz plik.

Aby dowiedzieć się więcej o importowaniu domyślnych wartości Zdalnej konfiguracji do swojego zobacz: