Szablon zdalnej konfiguracji to zestaw parametrów i warunków w formacie JSON po stronie serwera, który utworzyłeś dla projektu Firebase. Możesz modyfikować szablon i zarządzać nim za pomocą konsoli Firebase, która wyświetla zawartość szablonu w formie graficznej w zakładkach Parametry i Warunki . Możesz także użyć interfejsu REST API Remote Config i pakietu Admin SDK lub interfejsu CLI Firebase, aby modyfikować konfigurację i zarządzać nią.
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, Remote Config tworzy nowy szablon Remote Config z nową wersją i zapisuje poprzedni szablon jako wersję, którą możesz odzyskać lub przywrócić w razie potrzeby. Numery wersji są zwiększane sekwencyjnie od wartości początkowej zapisanej przez Zdalną konfigurację. Wszystkie szablony zawierają pole version
, jak pokazano, zawierające 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 związane z zarządzaniem wersjami:
- Lista wszystkich zapisanych wersji szablonów
- Pobierz konkretną wersję
- Przywróć określoną wersję
Zarządzając szablonami Zdalnej konfiguracji, pamiętaj, że nieaktywne szablony Zdalnej konfiguracji wygasają po 90 dniach. W razie potrzeby możesz je usunąć na stronie Historia zmian w konsoli Zdalnej konfiguracji. Istnieje całkowity limit przechowywanych wersji wynoszący 300, co obejmuje zapisane numery wersji usuniętych szablonów. Jeśli w trakcie trwania projektu opublikujesz więcej niż 300 wersji szablonów, najwcześniejsze wersje zostaną usunięte, zachowując maksymalnie 300 wersji.
Zarządzaj wersjami szablonów zdalnej konfiguracji
W tej sekcji opisano sposób zarządzania 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 Remote Config. 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>/remoteConfig:listVersions
Konsola Firebase
W zakładce Parametry wybierz ikonę „zegara” wyświetloną w prawym górnym rogu. Spowoduje to otwarcie strony Historia zmian zawierającej listę wszystkich zapisanych wersji szablonów w menu listy po prawej stronie.
Szczegóły wyświetlane dla każdej zapisanej wersji obejmują informację, czy zmiany pochodzą z Konsoli, z API REST, z wycofania, czy też były to zmiany przyrostowe z wymuszonego zapisu szablonu.
Interfejs wiersza polecenia Firebase
firebase remoteconfig:versions:list
Użyj opcji --limit
, aby ograniczyć liczbę zwracanych wersji. Przekaż „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 to, czy została ona dokonana za pośrednictwem konsoli czy API REST. 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żna 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 aby 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());
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
Parametr URL ?version_number
obowiązuje tylko dla operacji GET
; nie można go używać do określania numerów wersji aktualizacji. Podobne żądanie pobrania bez parametru ?version_number
spowodowałoby pobranie bieżącego aktywnego szablonu.
Konsola Firebase
Domyślnie w panelu szczegółów na karcie Historia zmian wyświetlany jest bieżący 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ą -o, FILENAME
.
Przywróć określoną przechowywaną wersję szablonu zdalnej konfiguracji
Możesz przywrócić dowolną zapisaną wersję 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ć przechowywany szablon zdalnej konfiguracji, wyślij polecenie HTTP POST z niestandardową metodą :rollback
i w treści żądania podaj 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 przechowywanego szablonu wraz z metadanymi jego nowej wersji.
Konsola Firebase
W przypadku poprzednich wersji szablonu, które można przywrócić, w prawym górnym rogu strony Historia zmian wyświetlany jest przycisk opcji umożliwiający przywrócenie 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 pamiętać, że ta operacja wycofania skutecznie tworzy nową numerowaną wersję. Na przykład wycofanie się z wersji 10 do wersji 6 skutecznie tworzy nową kopię wersji 6, różniącą się od oryginału jedynie tym, że ma numer wersji 11. Oryginalna wersja 6 jest nadal przechowywana, zakładając, że nie minęła jej data wygaśnięcia, i wersja 11 staje się aktywnym szablonem.
Usuń szablon zdalnej konfiguracji
Możesz usunąć szablony Remote Config z konsoli Firebase. Aby usunąć szablon Zdalnej konfiguracji:
Na stronie Parametry zdalnej konfiguracji kliknij Zmień historię .
Przejdź do szablonu, który chcesz usunąć, kliknij
Więcej , a następnie wybierz Usuń .Po wyświetleniu monitu o potwierdzenie usunięcia kliknij Usuń .
Pobierz i opublikuj szablony zdalnej konfiguracji
Pobieraj i publikuj szablony zdalnej konfiguracji, aby zintegrować je z systemami kontroli źródła i kompilacji, zautomatyzować aktualizacje konfiguracji oraz zapewnić synchronizację parametrów i wartości w wielu projektach.
Możesz pobrać aktualnie aktywny szablon Remote Config programowo lub z konsoli Firebase. Następnie możesz zaktualizować wyeksportowany plik JSON i opublikować go w tym samym projekcie lub opublikować go w nowym lub istniejącym projekcie.
Załóżmy, że masz wiele projektów reprezentujących różne etapy cyklu życia oprogramowania, takie jak środowiska programistyczne, testowe, testowe i produkcyjne. W takim przypadku możesz wypromować w pełni przetestowany szablon ze środowiska pomostowego do środowiska produkcyjnego, pobierając go z projektu pomostowego i publikując w projekcie produkcyjnym.
Możesz także użyć tej metody do migracji konfiguracji z jednego projektu do drugiego lub do wypełnienia nowego projektu parametrami i wartościami z już istniejącego projektu.
Parametry i wartości parametrów utworzone specjalnie jako warianty w eksperymencie testu A/B nie są uwzględniane w eksportowanych szablonach.
Aby wyeksportować i zaimportować szablony zdalnej konfiguracji:
- Pobierz aktualny szablon konfiguracji zdalnej konfiguracji .
- Sprawdź poprawność szablonu zdalnej konfiguracji .
- Opublikuj szablon Zdalnej konfiguracji .
Pobierz aktualny szablon zdalnej konfiguracji
Aktualny i aktywny szablon Remote Config możesz pobrać programowo lub za pomocą konsoli Firebase.
Użyj następujących poleceń, aby pobrać aktywny szablon zdalnej konfiguracji w formacie JSON:
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); }); }
Jawa
Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get(); // See the ETag of the fetched template. System.out.println("ETag from server: " + template.getETag());
ODPOCZYNEK
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
To polecenie wysyła ładunek JSON do jednego pliku, a nagłówki (w tym ETag) do osobnego pliku headers
.
Konsola Firebase
- Na karcie Parametry lub Warunki zdalnej konfiguracji otwórz menu i wybierz opcję Pobierz bieżący plik konfiguracyjny .
- Po wyświetleniu monitu kliknij Pobierz plik konfiguracyjny , wybierz lokalizację, w której chcesz zapisać plik, a następnie kliknij Zapisz .
Interfejs wiersza polecenia Firebase
firebase remoteconfig:get -o filename
Sprawdź szablon zdalnej konfiguracji
Możesz sprawdzić aktualizacje szablonów przed ich opublikowaniem, korzystając z pakietu Firebase Admin SDK lub interfejsu API REST. Szablony są również sprawdzane podczas próby opublikowania z poziomu interfejsu wiersza polecenia Firebase lub konsoli Firebase.
Proces sprawdzania poprawności szablonu sprawdza błędy, takie jak zduplikowane klucze parametrów i warunków, nieprawidłowe nazwy warunków lub nieistniejące warunki lub błędnie sformatowane znaczniki ETag. Na przykład żądanie zawierające więcej niż dozwolona liczba kluczy — 2000 — zwróci 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); }); }
Jawa
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()); } }
ODPOCZYNEK
Zweryfikuj aktualizacje szablonu, dołączając parametr adresu URL ?validate_only=true
do żądania publikacji:
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 Twój szablon został pomyślnie zweryfikowany, polecenie curl zwróci przesłany szablon JSON, a w zapisanym pliku headers
znajdziesz status HTTP/2 200 i zaktualizowany ETag z przyrostkiem -0
. Jeśli Twój szablon nie został zweryfikowany, w odpowiedzi JSON pojawi się błąd sprawdzania poprawności, a Twój plik headers
będzie zawierał odpowiedź inną niż 200 (i nie będzie zawierał znacznika ETag).
Opublikuj szablon zdalnej konfiguracji
Po pobraniu szablonu, wprowadzeniu wszelkich niezbędnych zmian w treści JSON i sprawdzeniu jego poprawności, możesz opublikować go w projekcie.
Opublikowanie szablonu zastępuje cały istniejący szablon konfiguracji zaktualizowanym plikiem i zwiększa wersję szablonu o jeden. Ponieważ zastępowana jest cała konfiguracja, jeśli usuniesz parametr z pliku JSON i opublikujesz go, parametr zostanie usunięty z serwera i nie będzie już dostępny dla klientów.
Po opublikowaniu zmiany parametrów i wartości są natychmiast dostępne dla Twoich aplikacji i użytkowników. Jeśli to konieczne, możesz przywrócić poprzednią wersję .
Aby opublikować szablon, użyj następujących poleceń:
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); }); }
Jawa
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()); } }
ODPOCZYNEK
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 „@”, po którym następuje nazwa pliku.
Konsola Firebase
- Na karcie Parametry lub Warunki zdalnej konfiguracji otwórz menu i wybierz opcję Publikuj z pliku .
- Po wyświetleniu monitu kliknij przycisk Przeglądaj , przejdź i wybierz plik Remote Config, który chcesz opublikować, a następnie kliknij przycisk Wybierz .
- Plik zostanie zweryfikowany i, jeśli się powiedzie, możesz kliknąć Opublikuj , aby natychmiast udostępnić konfigurację aplikacjom i użytkownikom.
Personalizacje i warunki Remote Config są zawarte w pobranych szablonach, dlatego przy próbie publikowania w innym projekcie należy pamiętać o następujących ograniczeniach:
Personalizacji nie można importować z projektu do projektu.
Na przykład, jeśli w projekcie masz włączoną personalizację oraz pobrałeś i edytowałeś szablon, możesz opublikować go w tym samym projekcie, ale nie możesz opublikować go w innym projekcie, chyba że usuniesz personalizacje z szablonu.
Warunki można importować z projektu do projektu, ale należy pamiętać, że wszelkie określone wartości warunkowe (takie jak identyfikatory aplikacji lub odbiorcy) powinny istnieć w projekcie docelowym przed opublikowaniem.
Na przykład, jeśli masz parametr Zdalnej konfiguracji, 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 dla każdego projektu. Jeśli jednak zawiera warunek zależny od konkretnego identyfikatora aplikacji lub odbiorców użytkownika, którzy nie istnieją w projekcie docelowym, weryfikacja zakończy się niepowodzeniem.Jeśli szablon, który planujesz opublikować, zawiera warunki bazujące na Google Analytics, Analytics musi być włączony w docelowym projekcie.
Pobierz domyślne szablony zdalnej konfiguracji
Ponieważ aplikacja może nie zawsze być połączona z Internetem, należy skonfigurować domyślne wartości aplikacji po stronie klienta dla wszystkich parametrów Zdalnej konfiguracji. Należy także okresowo synchronizować domyślne wartości klienta aplikacji i domyślne wartości parametrów zaplecza usługi Remote Config, ponieważ mogą one z czasem ulegać zmianie.
Jak opisano w linkach do poszczególnych platform 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ę tak, aby importowała te wartości.
Możesz pobrać te pliki w formacie XML dla aplikacji na Androida, w formacie listy właściwości (plist) dla aplikacji na iOS i JSON dla aplikacji internetowych.
Zalecamy okresowe pobieranie domyślnych ustawień Remote Config przed wydaniem nowej aplikacji, aby mieć pewność, że Twoja aplikacja i zaplecze Remote Config pozostaną zsynchronizowane.
Aby pobrać plik zawierający domyślne ustawienia szablonu:
ODPOCZYNEK
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
- Na karcie Parametry otwórz menu i wybierz opcję Pobierz wartości domyślne .
- Po wyświetleniu monitu kliknij przycisk opcji 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 funkcji Remote Config do aplikacji, zobacz:
Ustaw domyślne wartości parametrów w aplikacji dla systemu iOS
Ustaw domyślne wartości parametrów w aplikacji dla Internetu
Ustaw domyślne wartości parametrów w aplikacji dla języka C++