Pierwsze kroki ze Zdalnej konfiguracji Firebase


Możesz używać Firebase Remote Config do definiowania parametrów w aplikacji i aktualizowania ich wartości w chmurze, co pozwala modyfikować wygląd i działanie aplikacji bez rozpowszechniania jej aktualizacji. Ten przewodnik zawiera instrukcje, jak zacząć korzystać z usługi, oraz przykładowy kod, który można sklonować lub pobrać z repozytorium GitHub firebase/quickstart-js.

Krok 1. Dodaj i zainicjuj pakiet SDK Remote Config

  1. Jeśli nie masz jeszcze zainstalowanego pakietu Firebase JS SDK i zainicjowanego Firebase, zrób to.

  2. Dodaj Remote Config pakiet SDK w JavaScript i zainicjuj Remote Config:

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 Remote Config i określania, kiedy pobrane wartości mają być udostępniane aplikacji.

Krok 2. Ustaw minimalny interwał pobierania

Podczas tworzenia zalecamy ustawienie stosunkowo niskiego minimalnego interwału pobierania. Więcej informacji znajdziesz w sekcji Ograniczanie liczby żądań.

Web

// The default and recommended production fetch interval for Remote Config is 12 hours
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Krok 3. Ustaw domyślne wartości parametrów w aplikacji

W obiekcie Remote Config możesz ustawić domyślne wartości parametrów w aplikacji, aby działała ona zgodnie z oczekiwaniami, zanim połączy się z backendem Remote Config, a także aby domyślne wartości były dostępne, jeśli żadne nie są ustawione w backendzie.

Web

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

Web

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

Jeśli masz już skonfigurowane wartości parametru backendu Remote Config, możesz pobrać wygenerowany plik JSON, który zawiera wszystkie wartości domyślne, i dołączyć go do pakietu 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

Firebase konsola

  1. Na karcie Parametry otwórz menu i kliknij Pobierz wartości domyślne.
  2. Gdy pojawi się odpowiedni komunikat, włącz opcję .json for web, a potem kliknij Download file (Pobierz plik).

Poniższe przykłady pokazują 2 sposoby importowania i ustawiania wartości domyślnych w aplikacji. Pierwszy przykład używa funkcji fetch, która wysyła żądanie HTTP do pliku wartości domyślnych dołączonego do pakietu aplikacji:

  const rcDefaultsFile = await fetch('remote_config_defaults.json');
  const rcDefaultsJson = await rcDefaultsFile.json();
  remoteConfig.defaultConfig = rcDefaultsJson;
  

W kolejnym przykładzie użyto require, które kompiluje wartości w aplikacji w momencie jej tworzenia:

  let rcDefaults = require('./remote_config_defaults.json');
  remoteConfig.defaultConfig = rcDefaults;

Krok 4. Uzyskaj wartości parametrów, które będą używane w Twojej aplikacji

Możesz teraz pobierać wartości parametrów z obiektu Remote Config. Jeśli później ustawisz wartości na backendzie, pobierzesz je, a następnie aktywujesz, będą one dostępne w aplikacji.Aby je uzyskać, 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ą Firebasekonsoli lub Remote Configbackendowych interfejsów API możesz tworzyć nowe domyślne wartości po stronie serwera, które zastępują wartości w aplikacji zgodnie z wybraną logiką warunkową lub kierowaniem na użytkowników. W tej sekcji znajdziesz instrukcje dotyczące Firebase konsoli, które pomogą Ci utworzyć te wartości.

  1. W Firebasekonsoli otwórz projekt.
  2. W menu wybierz Remote Config, aby wyświetlić Remote Configpanel.
  3. Zdefiniuj parametry o takich samych nazwach jak parametry zdefiniowane w aplikacji. W przypadku każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi wartość domyślną w aplikacji) oraz wartości warunkowe. Więcej informacji znajdziesz w artykule Remote ConfigParametry i warunki.
  4. Jeśli używasz niestandardowych warunków sygnału, zdefiniuj atrybuty i ich wartości. Poniższy przykład pokazuje, jak zdefiniować warunek sygnału niestandardowego.

      let customSignals = {
         "city": "Tokyo",
         "preferred_event_category": "sports"
      }
    
      setCustomSignals(config, customSignals);

Krok 6. Pobierz i aktywuj wartości

  1. Aby pobrać wartości parametrów z backendu Remote Config, wywołaj metodę fetchConfig(). Wszystkie wartości ustawione w backendzie są pobierane i buforowane w obiekcie Remote Config.
  2. Aby pobrane wartości parametrów były dostępne w aplikacji, wywołaj metodę activate().

Jeśli chcesz pobrać i aktywować wartości w jednym wywołaniu, użyj fetchAndActivate() jak w tym przykładzie:

Web

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

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

Web

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

Zaktualizowane wartości parametrów wpływają na działanie i wygląd aplikacji, dlatego należy aktywować pobrane wartości w momencie, który zapewni użytkownikowi płynne działanie aplikacji, np. przy następnym otwarciu aplikacji. Więcej informacji i przykłady znajdziesz w artykule Strategie wczytywania Zdalnej konfiguracji.

Ograniczenia

Jeśli aplikacja pobiera dane zbyt wiele razy w krótkim czasie, wywołania pobierania mogą zostać ograniczone. W takich przypadkach SDK zgłasza błąd FETCH_THROTTLE. Zalecamy przechwycenie tego błędu i ponowienie próby w trybie wykładniczego wycofywania, z dłuższymi odstępami między kolejnymi żądaniami pobierania.

Podczas tworzenia aplikacji możesz bardzo często odświeżać pamięć podręczną (wiele razy na godzinę), aby szybko wprowadzać zmiany w trakcie programowania i testowania aplikacji. Aby umożliwić szybkie wprowadzanie zmian w projekcie, nad którym pracuje wielu deweloperów, możesz tymczasowo dodać w aplikacji właściwość z krótkim minimalnym interwałem pobierania (Settings.minimumFetchIntervalMillis).

Domyślny i zalecany interwał pobierania w środowisku produkcyjnym dla Remote Config wynosi 12 godzin. Oznacza to, że konfiguracje nie będą pobierane z backendu częściej niż raz w 12-godzinnym przedziale czasu, niezależnie od tego, ile wywołań pobierania zostanie faktycznie wykonanych. W szczególności minimalny interwał pobierania jest określany w tej kolejności:

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

Dalsze kroki

Jeśli jeszcze tego nie zrobiono, zapoznaj się z Remote Config przypadkami użycia i dokumentacją dotyczącą kluczowych pojęć i zaawansowanych strategii, w tym: