Szablony zdalnej konfiguracji i wersjonowanie

Szablon Zdalna konfiguracja to po stronie serwera zestaw parametrów i warunków w formacie JSON, które zostały utworzone dla projektu Firebase. Możesz modyfikować szablon i zarządzać nim za pomocą konsoli Firebase, która wyświetla zawartość szablonu w formacie graficznym na zakładkach Parametry i Warunki . Do modyfikowania konfiguracji i zarządzania nią możesz też użyć interfejsów API backendu Zdalnej konfiguracji lub interfejsu Firebase CLI .

Oto przykład pliku szablonu:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

Za każdym razem, gdy aktualizujesz parametry, Zdalna konfiguracja tworzy nowy wersjonowany szablon Zdalnej konfiguracji i przechowuje poprzedni szablon jako wersję, którą można w razie potrzeby pobrać lub przywrócić. Numery wersji są zwiększane sekwencyjnie od wartości początkowej przechowywanej przez Remote Config. Wszystkie szablony zawierają pole version , jak pokazano, zawierające metadane dotyczące tej konkretnej wersji.

Za pomocą konsoli Firebase, interfejsu Firebase CLI lub interfejsów API zaplecza Remote Config możesz wykonywać następujące zadania zarządzania wersjami:

  • Wyświetl wszystkie zapisane wersje szablonów
  • Pobierz konkretną wersję
  • Wróć do określonej wersji

Zarządzając szablonami Zdalnej konfiguracji, pamiętaj o progu wygaśnięcia: bieżący aktywny szablon Zdalnej konfiguracji używany przez Twoją aplikację nie wygasa; jednak jeśli zostanie zastąpiony aktualizacją, poprzednia wersja będzie przechowywana tylko przez 90 dni, po czym wygaśnie i nie będzie można jej odzyskać. Istnieje również całkowity limit 300 przechowywanych wersji. Jeśli chcesz zapisać lub przywrócić szablon poza tymi limitami, zapisz go i zapisz ręcznie.

Zarządzaj wersjami szablonów Zdalnej konfiguracji

W tej sekcji opisano, jak zarządzać wersjami szablonu Zdalnej konfiguracji. Aby uzyskać więcej informacji na temat programowego tworzenia, modyfikowania i zapisywania szablonów, zobacz Programowe modyfikowanie zdalnej konfiguracji .

Wyświetl listę wszystkich zapisanych wersji szablonu Zdalnej konfiguracji

Możesz pobrać listę wszystkich zapisanych wersji szablonu Zdalnej konfiguracji. Na przykład:

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

Jawa

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

RESZTA

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

Konsola Firebase

W zakładce Parametry wybierz ikonę „zegar” wyświetlaną w prawym górnym rogu. Spowoduje to otwarcie strony Historia zmian z listą wszystkich zapisanych wersji szablonów w menu listy po prawej stronie.

Szczegóły wyświetlane dla każdej przechowywanej wersji zawierają informacje o tym, czy zmiany pochodzą z konsoli, z REST API, z wycofania, czy były to zmiany przyrostowe z wymuszonego zapisania szablonu.

Interfejs wiersza polecenia Firebase

firebase remoteconfig:versions:list

Użyj opcji --limit , aby ograniczyć liczbę zwracanych wersji. Podaj „0”, aby pobrać wszystkie wersje.

Lista szablonów zawiera metadane dla wszystkich przechowywanych wersji, w tym czas aktualizacji, użytkownika, który ją wykonał oraz czy została wykonana za pomocą konsoli czy REST API. Oto przykład elementu wersji:

{
  "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"
  }]

Pobierz określoną wersję szablonu Zdalnej konfiguracji

Możesz pobrać dowolną określoną, zapisaną wersję szablonu Zdalnej konfiguracji. Na przykład:

Node.js

Przekaż getTemplate() bez żadnych argumentów, aby pobrać najnowszą wersję szablonu lub pobrać konkretną wersję, użyj 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);
  });

Jawa

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

RESZTA

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 dla operacji GET ; nie można go używać do określania numerów wersji aktualizacji. Podobne żądanie get bez parametru ?version_number bieżący aktywny szablon.

Konsola Firebase

Domyślnie panel szczegółów na karcie Historia zmian wyświetla aktualnie aktywny szablon. Aby wyświetlić szczegóły innej wersji na liście, wybierz ją z prawego menu.

Możesz wyświetlić szczegółowe porównanie aktualnie wybranej wersji i dowolnej innej zapisanej wersji, najeżdżając kursorem na menu kontekstowe dowolnej niewybranej wersji i wybierając Porównaj z wybraną wersją.

Interfejs wiersza polecenia Firebase

firebase remoteconfig:get -v VERSION_NUMBER

Opcjonalnie możesz zapisać dane wyjściowe do określonego pliku za pomocą opcji -o, FILENAME .

Przywróć do konkretnej zapisanej wersji szablonu Zdalnej konfiguracji

Możesz cofnąć się do dowolnej zapisanej wersji szablonu. Na przykład:

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

Jawa

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

RESZTA

Aby powrócić do zapisanego szablonu Zdalnej konfiguracji, wyślij HTTP POST z niestandardową metodą :rollback i, w treści żądania, konkretną wersją do zastosowania. Na 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ść aktualnie aktywnego zapisanego szablonu wraz z metadanymi nowej wersji.

Konsola Firebase

W przypadku poprzednich wersji szablonów kwalifikujących się do wycofania, w prawym górnym rogu strony Historia zmian wyświetlany jest przycisk opcji przywracania do tej wersji. Kliknij i potwierdź to tylko wtedy, gdy masz pewność, że chcesz przywrócić tę wersję i natychmiast użyć tych wartości dla wszystkich aplikacji i użytkowników.

Interfejs wiersza polecenia Firebase

firebase remoteconfig:rollback -v VERSION_NUMBER

Należy zauważyć, że ta operacja wycofywania skutecznie tworzy nową wersję numerowaną. Na przykład cofanie się z wersji 10 do wersji 6 skutecznie tworzy nową kopię wersji 6, różniącą się od oryginału tylko tym, że jej numer wersji to 11. Oryginalna wersja 6 jest nadal przechowywana, zakładając, że nie osiągnęła ona swojej ważności, oraz wersja 11 staje się aktywnym szablonem.

Pobierz domyślne ustawienia szablonu Zdalnej konfiguracji

Ponieważ aplikacja nie zawsze jest połączona z Internetem, należy skonfigurować domyślne wartości aplikacji po stronie klienta dla wszystkich parametrów zdalnej konfiguracji. Należy również okresowo synchronizować domyślne wartości klienta aplikacji i domyślne wartości parametrów zaplecza Zdalnej konfiguracji, ponieważ mogą się one zmieniać w czasie.

Jak opisano w linkach dotyczących platformy na końcu tej sekcji, możesz ręcznie ustawić te wartości domyślne w swojej aplikacji lub usprawnić ten proces, pobierając pliki zawierające tylko pary klucz-wartość dla wszystkich parametrów i ich wartości domyślne w aktywny szablon Zdalnej konfiguracji. Następnie możesz dołączyć ten plik do swojego projektu i skonfigurować aplikację do importowania tych wartości.

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

Zalecamy okresowe pobieranie ustawień domyślnych Remote Config przed każdą nową wersją aplikacji, aby upewnić się, że aplikacja i zaplecze Remote Config pozostają zsynchronizowane.

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

RESZTA

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 XML , PLIST lub JSON jako wartości format , w zależności od formatu pliku, który chcesz pobrać.

Konsola Firebase

  1. Na karcie Parametry otwórz menu i wybierz opcję Pobierz wartości domyślne .
  2. Po wyświetleniu monitu kliknij przycisk radiowy odpowiadający formatowi pliku, który chcesz pobrać, a następnie kliknij opcję Pobierz plik .

Aby uzyskać więcej informacji na temat importowania domyślnych wartości Zdalnej konfiguracji do swojej aplikacji, zobacz: