Wprowadzenie do Zdalnej konfiguracji Firebase


Za pomocą Zdalnej konfiguracji Firebase możesz definiować parametry w aplikacji i aktualizować ich wartości w chmurze, co pozwala zmieniać wygląd i działanie aplikacji bez jej aktualizacji. Ten przewodnik przedstawia krok po kroku, jak zacząć, oraz zawiera przykładowy kod, który możesz sklonować lub pobrać z repozytorium firebase/quickstart-js GitHub.

Krok 1. Dodaj i zainicjuj pakiet SDK Zdalnej konfiguracji.

  1. Zainstaluj pakiet SDK Firebase JS i zainicjuj Firebase, jeśli jeszcze go nie masz.

  2. Dodaj pakiet SDK Zdalnej konfiguracji JS i zainicjuj Zdalną konfigurację:

Web modular API

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

Interfejs API Web Namespaced

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 kontrolowania, kiedy pobierane wartości mają być dostępne dla aplikacji.

Krok 2. Ustaw minimalny interwał pobierania

W trakcie programowania zalecane jest ustawienie stosunkowo niskiego minimalnego okresu pobierania. Więcej informacji znajdziesz w sekcji Ograniczanie.

Web modular API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Interfejs API Web Namespaced

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 aplikacji, dzięki czemu aplikacja będzie zachowywać się zgodnie z oczekiwaniami przed nawiązaniem połączenia z backendem Zdalnej konfiguracji, a jeśli w backendzie nie zostanie ustawiona żadna wartość domyślna, będą dostępne wartości domyślne.

Web modular API

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Interfejs API Web Namespaced

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 uwzględnić 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 kliknij Pobierz wartości domyślne.
  2. Gdy pojawi się prośba, włącz format .json dla stron internetowych, a potem kliknij Pobierz plik.

Poniższe przykłady pokazują 2 różne sposoby importowania i ustawiania wartości domyślnych w aplikacji. Pierwszy przykład używa metody fetch, która wysyła żądanie HTTP do pliku domyślnego uwzględnionego 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 narzędzia require, które kompiluje wartości do aplikacji w czasie 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, pobierze je i aktywujesz, będą one dostępne dla Twojej aplikacji.Aby uzyskać te wartości, wywołaj metodę getValue(), podając klucz parametru jako argument.

Web modular API

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

Interfejs API Web Namespaced

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 tworzyć po stronie serwera nowe wartości domyślne, które zastępują wartości w aplikacji zgodnie z wybraną logiką warunkową lub kierowaniem na użytkowników. Z tej sekcji dowiesz się, jak utworzyć te wartości w konsoli Firebase.

  1. Otwórz projekt w konsoli Firebase.
  2. Wybierz z menu 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) lub ustawić wartości warunkowe. Więcej informacji znajdziesz w artykule o parametrach i warunkach 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 zapisywane w pamięci podręcznej obiektu Zdalnej konfiguracji.
  2. Aby udostępnić aplikacji pobrane wartości parametrów, wywołaj metodę activate().

W przypadkach, w których chcesz pobrać i aktywować wartości w ramach jednego wywołania, użyj fetchAndActivate() jak w tym przykładzie:

Web modular API

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Interfejs API Web Namespaced

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Te zaktualizowane wartości parametrów mają wpływ na działanie i wygląd aplikacji, dlatego należy aktywować pobrane wartości w czasie umożliwiającym bezproblemowe korzystanie z aplikacji, np. przy następnym uruchomieniu przez niego aplikacji. Więcej informacji i przykładów znajdziesz w artykule Strategie ładowania Zdalnej konfiguracji.

Ograniczenia

Jeśli aplikacja pobiera 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 ponawiania, oczekując dłuższych odstępów między kolejnymi żądaniami pobrania.

Podczas tworzenia aplikacji możesz często odświeżać pamięć podręczną (wiele razy na godzinę), aby przyspieszyć tworzenie i testowanie aplikacji. Aby umożliwić szybkie iterowanie projektu z wieloma deweloperami, możesz tymczasowo dodać do aplikacji właściwość o niskim minimalnym przedziale czasu pobierania (Settings.minimumFetchIntervalMillis).

Domyślny i zalecany interwał pobierania produkcyjnego dla 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 faktycznie zostało wywołań pobierania. W szczególności minimalny interwał pobierania jest określany w tej kolejności:

  1. Parametr w argumencie Settings.minimumFetchIntervalMillis.
  2. Wartość domyślna to 12 godzin.

Dalsze kroki

Zapoznaj się z przypadkami użycia Zdalnej konfiguracji oraz dokumentacją kluczowych pojęć i zaawansowanych strategii, takich jak: