Za pomocą Zdalnej konfiguracji Firebase możesz definiować parametry w aplikacji i aktualizować ich wartości w chmurze. Pozwala to zmieniać wygląd i działanie aplikacji bez jej aktualizowania. Ten przewodnik zawiera omówienie pierwszych kroków oraz przykładowy kod, który można skopiować lub pobrać z repozytorium GitHub firebase/quickstart-js.
Krok 1. Dodaj i zainicjuj pakiet SDK Zdalnej konfiguracji
Jeśli jeszcze nie masz tego za sobą, zainstaluj pakiet SDK Firebase JS i zainicjuj Firebase.
Dodaj pakiet JS SDK Zdalnej konfiguracji i zainicjuj Zdalną konfigurację:
Web
import { initializeApp } from "firebase/app"; import { getRemoteConfig } from "firebase/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = firebase.remoteConfig();
Ten obiekt służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z backendu Zdalnej konfiguracji oraz do kontrolowania, kiedy pobrane wartości mają być udostępniane aplikacji.
Krok 2. Ustaw minimalny interwał pobierania
Podczas programowania zalecamy ustawienie stosunkowo niskiego minimalnego odstępu pobierania. Więcej informacji znajdziesz w sekcji Ograniczanie wykorzystania.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Krok 3. Ustaw domyślne wartości parametrów w aplikacji
W obiekcie Zdalnej konfiguracji możesz ustawić domyślne wartości parametrów w aplikacji, dzięki czemu aplikacja zachowuje się zgodnie z oczekiwaniami, zanim połączy się z backendem Zdalnej konfiguracji, a jeśli w backendzie nie będzie ustawiona żadna wartość domyślna, aplikacja będzie działać zgodnie z oczekiwaniami.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Jeśli masz już skonfigurowane wartości parametrów backendu Zdalnej konfiguracji, możesz pobrać wygenerowany plik JSON zawierający wszystkie wartości domyślne i umieścić go w pakiecie aplikacji:
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json
Konsola Firebase
- Na karcie Parametry otwórz menu i wybierz Pobierz wartości domyślne.
- Gdy pojawi się prośba, włącz plik.json dla witryn, a następnie kliknij Pobierz plik.
Poniższe przykłady pokazują 2 różne sposoby importowania i ustawiania wartości domyślnych w aplikacji. Pierwszy z nich używa metody fetch
, która powoduje wysłanie żądania HTTP do pliku domyślnego zawartego w pakiecie aplikacji:
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
W następnym przykładzie użyto metody require
, która kompiluje wartości w aplikacji w momencie kompilacji:
let rcDefaults = require('./remote_config_defaults.json'); remoteConfig.defaultConfig = rcDefaults;
Krok 4. Pobierz wartości parametrów do wykorzystania w aplikacji
Teraz możesz pobierać wartości parametrów z obiektu Zdalnej konfiguracji. Jeśli później ustawisz wartości w backendzie, pobierzesz je i aktywujesz, będą one dostępne dla Twojej aplikacji.Aby je pobrać, wywołaj metodę getValue()
, podając klucz parametru jako argument.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
Krok 5. Ustaw wartości parametrów
Za pomocą konsoli Firebase lub interfejsów API backendu Zdalnej konfiguracji możesz utworzyć nowe wartości domyślne po stronie serwera, które zastąpią wartości w aplikacji odpowiednio do oczekiwanej logiki warunkowej lub kierowania na użytkowników. W tej sekcji znajdziesz instrukcje tworzenia tych wartości w konsoli Firebase.
- W konsoli Firebase otwórz projekt.
- Z menu wybierz Zdalna konfiguracja, aby wyświetlić panel Zdalnej konfiguracji.
- Zdefiniuj parametry o takich samych nazwach jak parametry zdefiniowane w aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi wartość domyślną w aplikacji) albo ustawić wartości warunkowe. Więcej informacji znajdziesz w artykule Parametry i warunki Zdalnej konfiguracji.
Krok 6. Pobierz i aktywuj wartości
- Aby pobrać wartości parametrów z backendu Zdalnej konfiguracji, wywołaj metodę
fetchConfig()
. Wszystkie wartości ustawione w backendzie są pobierane i buforowane w obiekcie Zdalnej konfiguracji. - Aby udostępnić w aplikacji pobrane wartości parametrów, wywołaj metodę
activate()
.
Jeśli chcesz pobrać i aktywować wartości w jednym wywołaniu, użyj polecenia fetchAndActivate()
w następujący sposób:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
Te zaktualizowane wartości parametrów wpływają na działanie i wygląd aplikacji, dlatego musisz aktywować pobrane wartości w czasie, który zapewni użytkownikom płynne działanie, np. gdy następnym razem otworzy on Twoją aplikację. Więcej informacji i przykłady znajdziesz w artykule Strategie wczytywania Zdalnej konfiguracji.
Ograniczenia
Jeśli aplikacja pobierze zbyt wiele razy w krótkim czasie, wywołania pobierania mogą zostać ograniczone. W takich przypadkach pakiet SDK zgłasza błąd FETCH_THROTTLE
.
Zalecamy wychwycenie tego błędu i ponowienie próby w trybie wykładniczego ponowienia, oczekiwanie na dłuższe odstępy czasu między kolejnymi żądaniami pobrania.
Podczas tworzenia aplikacji warto często odświeżać pamięć podręczną (wiele razy na godzinę), by umożliwić szybkie iteracje podczas tworzenia i testowania aplikacji. Aby dostosować ją do szybkiej iteracji w projekcie obejmującym wielu deweloperów, możesz tymczasowo dodać do aplikacji właściwość z krótkim minimalnym odstępem pobierania (Settings.minimumFetchIntervalMillis
).
Domyślny i zalecany interwał pobierania w środowisku produkcyjnym w przypadku Zdalnej konfiguracji to 12 godzin, co oznacza, że konfiguracje będą pobierane z backendu tylko raz w ciągu 12 godzin, niezależnie od tego, ile rzeczywiście zostało wykonanych wywołań pobierania. Minimalny odstęp czasu pobierania jest określany w tej kolejności:
- Parametr w polu
Settings.minimumFetchIntervalMillis
. - Wartość domyślna to 12 godzin.
Dalsze kroki
Zapoznaj się z przypadkami użycia Zdalnej konfiguracji i zapoznaniem się z niektórymi kluczowymi pojęciami i dokumentacją zaawansowanych strategii, w tym: