Catch up on everthing we announced at this year's Firebase Summit. Learn more

Szablony zdalnej konfiguracji i wersjonowanie

Szablon Zdalnej konfiguracji to po stronie serwera zestaw parametrów i warunków w formacie JSON utworzonych dla projektu Firebase. Można modyfikować i zarządzać szablonu za pomocą konsoli Firebase, który wyświetla zawartość szablonu w formacie graficznym w Parametry i Warunki zakładkach. Można również użyć Remote Config backend API lub Firebase CLI modyfikować i zarządzać config.

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 pobrać lub przywrócić w razie potrzeby. Numery wersji są zwiększane sekwencyjnie od wartości początkowej przechowywanej przez Remote Config. Wszystkie szablony zawierają version boiska pokazany, zawierający metadane dotyczące tej konkretnej wersji.

Za pomocą konsoli Firebase, interfejsu wiersza polecenia Firebase 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: 90 dni od czasu utworzenia lub łączny limit 300 przechowywanych wersji. Jeśli chcesz zapisać lub przywrócić szablon poza tymi limitami, zapisz go i zapisz ręcznie. Obecna aktywna Remote Config szablon używany przez aplikację nie wygasa; jeśli jednak był aktywny przez ponad 90 dni od utworzenia i został zastąpiony aktualizacją, nie można go ponownie pobrać (ze względu na wygaśnięcie).

Zarządzaj wersjami szablonów Zdalnej konfiguracji

W tej sekcji opisano, jak zarządzać wersjami szablonu Zdalnej konfiguracji. Aby uzyskać więcej szczegółów na temat tworzenia, modyfikowania i zapisać szablony programowo, zobacz Modyfikowanie Remote Config programowo .

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

ODPOCZYNEK

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

Konsola Firebase

W Parametry karcie, wybierz ikonę „zegar” wyświetlany w prawym górnym rogu. To otwiera historię zmian strony z listą wszystkich zapisanych wersji matrycę w menu listy po prawej stronie.

Szczegóły wyświetlane dla każdej przechowywanej wersji zawierają informacje o tym, czy zmiany pochodziły 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 --limit opcję, aby ograniczyć liczbę wersji zwracane. 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": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

Pobierz konkretną wersję szablonu Zdalnej konfiguracji

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

Node.js

Karnet getTemplate() bez argumentów, aby pobrać najnowszą wersję szablonu, lub pobrać wersję konkretnego użyć 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());

ODPOCZYNEK

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</pre>

Parametr URL ?version_number jest ważna tylko dla GET operacji; nie można go używać do określania numerów wersji aktualizacji. Podobny wniosek get bez ?version_number parametru będzie pobierać aktualny aktywny szablon.

Konsola Firebase

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

Można wyświetlić szczegółowe diff aktualnie wybranej wersji i dowolnej innej wersji zapisanej przez unoszące się nad menu kontekstowego dla każdej wersji non-wybrany i wybierając Porównaj z wybranej wersji.

Interfejs wiersza polecenia Firebase

firebase remoteconfig:get -v VERSION_NUMBER

Opcjonalnie można napisać wyjście do określonego pliku z -o, FILENAME .

Przywróć do określonej 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());
  }
}

ODPOCZYNEK

Aby przywrócić zapisanego szablonu Remote Config, wydać HTTP POST z niestandardowego sposobu :rollback , a w treści żądania, wersja specyficzne zastosowania. Na przykład:

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

Odpowiedź zawiera zawartość aktualnie aktywnego zapisanego szablonu wraz z metadanymi nowej wersji.

Konsola Firebase

Na poprzednich wersjach szablonów kwalifikujących się do wycofania, jest wyświetlany w prawym górnym rogu się przycisk opcji, aby przywrócić tej wersji historii zmian strony. Kliknij i potwierdzić to tylko wtedy, gdy jesteś pewien, że chcesz przywrócić tej wersji i natychmiast skorzystać z tych wartości dla wszystkich aplikacji i użytkowników.

Interfejs wiersza polecenia Firebase

firebase remoteconfig:rollback -v VERSION_NUMBER

Zauważ, że ta operacja wycofywania skutecznie tworzy nową wersję numerowaną. Na przykład wycofanie 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, a wersja 11 staje się aktywnym szablonem.