Za pomocą Firebase Remote Config możesz definiować parametry w aplikacji i zmieniać ich wartości w chmurze, co umożliwia modyfikowanie wyglądu i zachowania aplikacji bez rozpowszechniania jej aktualizacji. W tym przewodniku znajdziesz instrukcje rozpoczęcia pracy oraz przykładowy kod, który możesz skopiować lub pobrać z repozytorium GitHub firebase/quickstart-js.
Krok 1. Dodaj i inicjuj pakiet SDK Remote Config
Jeśli jeszcze tego nie zrobiono, zainstaluj pakiet SDK Firebase JS i zainicjuj Firebase.
Dodaj pakiet SDK JS Remote Config i inicjuj 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 oraz kontrolowania, kiedy pobrane wartości są udostępniane aplikacji.
Krok 2. Ustaw minimalny interwał pobierania
Podczas tworzenia zalecamy ustawienie stosunkowo niskiego minimalnego interwału pobierania. Więcej informacji znajdziesz w artykule Ograniczanie.
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Krok 3. Ustaw domyślne wartości parametrów w aplikacji
Wartości domyślne parametrów w aplikacji możesz ustawić w obiekcie Remote Config, aby aplikacja działała zgodnie z oczekiwaniami, zanim połączy się z backendem Remote Config. Dzięki temu będą dostępne wartości domyślne, jeśli nie zostaną ustawione na backendzie.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Jeśli masz już skonfigurowane wartości parametrów backendu Remote Config, 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ę taka prośba, włącz .json dla sieci, a potem kliknij Pobierz plik.
Poniższe przykłady pokazują 2 sposoby importowania i ustawiania wartości domyślnych w aplikacji. Pierwszy przykład używa fetch
, co powoduje wysłanie żądania HTTP do pliku domyślnych zawartego w pakiecie aplikacji:
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
Następny przykład używa funkcji require
, która kompiluje wartości w aplikacji w momencie kompilacji:
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
Teraz możesz pobierać wartości parametrów z obiektu Remote Config. Jeśli później ustawisz wartości w backendzie, pobierzesz je, a potem je aktywujesz, będą one dostępne w aplikacji.Aby je uzyskać, wywołaj metodę getValue()
, podając jako argument klucz parametru.
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 Remote Config backendowych interfejsów API możesz tworzyć nowe domyślne wartości po stronie serwera, które zastąpią wartości w aplikacji zgodnie z wybraną przez Ciebie logiką warunkową lub kierowaniem na użytkowników. W tej sekcji znajdziesz instrukcje tworzenia tych wartości w konsoli Firebase.
- W konsoli Firebase otwórz projekt.
- Aby wyświetlić panel Remote Config, w menu kliknij Remote Config.
- Zdefiniuj parametry o tych samych nazwach co parametry zdefiniowane w aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi wartość domyślną w aplikacji), a także wartości warunkowe. Więcej informacji znajdziesz w artykule Remote ConfigParametry i warunki.
Krok 6. Pobierz i aktywuj wartości
- Aby pobrać wartości parametrów z back-endu Remote Config, wywołaj metodę
fetchConfig()
. Wszystkie wartości ustawione na zapleczu są pobierane i przechowywane w obiekcie Remote Config. - Aby udostępnić wartości pobranych parametrów aplikacji, wywołaj metodę
activate()
.
Jeśli chcesz pobrać i aktywować wartości w jednym wywołaniu, użyj parametru 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 takim momencie, aby zapewnić użytkownikowi płynne działanie, np. gdy otworzy on aplikację po raz kolejny. Więcej informacji i przykładów znajdziesz w artykule Strategie wczytywania Zdalnej konfiguracji.
Ograniczenia
Jeśli aplikacja pobiera dane zbyt często w krótkim czasie, wywołania mogą zostać ograniczone. W takich przypadkach SDK zwraca błąd FETCH_THROTTLE
.
Zalecamy wychwycenie tego błędu i ponowne przesłanie żądania w trybie ujemnego wykładniczego wygaszania, z dłuższymi przerwami między kolejnymi żądaniami pobierania.
Podczas tworzenia aplikacji możesz często odświeżać pamięć podręczną (wielokrotnie na godzinę), aby umożliwić szybkie iterowanie podczas tworzenia i testowania aplikacji. Aby umożliwić szybkie iterowanie w projekcie z licznymi deweloperami, możesz tymczasowo dodać w aplikacji właściwość z minimalnym odstępem czasowym na pobieranie (Settings.minimumFetchIntervalMillis
).
Domyślny i zalecany interwał pobierania w produkcji w przypadku Remote Config wynosi 12 godzin, co oznacza, że konfiguracje nie będą pobierane z back-endu częściej niż raz na 12 godzin, niezależnie od liczby wywołań funkcji pobierania. W szczególności minimalny interwał pobierania jest określany w tej kolejności:
- Parametr w pliku
Settings.minimumFetchIntervalMillis
. - domyślna wartość 12 godzin;
Dalsze kroki
Jeśli jeszcze tego nie zrobisz, zapoznaj się z Remote Config przypadkami użycia i pojęciami kluczowymi oraz dokumentacją dotyczącą zaawansowanych strategii, w tym: