Wprowadzenie do Zdalnej konfiguracji Firebase


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

  1. Jeśli jeszcze nie masz tego za sobą, zainstaluj pakiet SDK Firebase JS i zainicjuj Firebase.

  2. 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

  1. Na karcie Parametry otwórz menu i wybierz Pobierz wartości domyślne.
  2. 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.

  1. W konsoli Firebase otwórz projekt.
  2. Z menu wybierz Zdalna konfiguracja, aby wyświetlić panel Zdalnej konfiguracji.
  3. 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

  1. 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.
  2. 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:

  1. Parametr w polu Settings.minimumFetchIntervalMillis.
  2. 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: