Aby zapewnić maksymalną elastyczność, usługa Firebase Remote Config obsługuje integrację pakietów SDK po stronie klienta i serwera w przypadku aplikacji internetowych. Oznacza to, że Twoja aplikacja może:
- pobierać i oceniać szablony Remote Config na serwerze: serwer może pobrać szablon Remote Config i bezpośrednio ocenić warunki kierowania ;
- optymalizować wydajność wstępnego wczytywania strony: w przypadku renderowania po stronie serwera serwer może przekazać klientowi ocenioną konfigurację podczas wstępnego wczytywania strony. Zwiększa to wydajność, ponieważ niezbędne dane konfiguracyjne są dostarczane z wyprzedzeniem.
Dzięki temu podejściu możesz dynamicznie zarządzać zachowaniem i konfiguracją aplikacji, szczególnie w przypadku konfiguracji renderowania po stronie serwera.
Konfigurowanie renderowania po stronie serwera w aplikacjach
Aby skonfigurować renderowanie po stronie serwera za pomocą Remote Config w aplikacji internetowej, zaktualizuj aplikacje po stronie klienta i serwera, wykonując te czynności.
Krok 1. Zaktualizuj aplikację po stronie serwera
W aplikacji po stronie serwera, w której został zaimplementowany pakiet Firebase Admin Node.js
SDK, dodaj klasę RemoteConfigFetchResponse akceptującą istniejącą
ServerConfig
. Możesz jej użyć do serializacji wartości konfiguracji, które można przekazać do klienta.
export default async function MyServerComponent() {
const serverApp = initializeApp();
const serverSideConfig = getRemoteConfig(serverApp);
const template = await serverSideConfig.getServerTemplate();
const config = template.evaluate({randomizationId: 'some-uuid'});
const fetchResponse = new RemoteConfigFetchResponse(serverApp, config);
return (
<div>
<MyClientComponent initialFetchResponse={fetchResponse}></MyClientComponent>
</div>
);
}
Krok 2. Zaktualizuj aplikację po stronie klienta
W aplikacji po stronie klienta, która implementuje pakiet Firebase Javascript SDK, dodaj opcję konfiguracji initialFetchResponse, aby akceptować serializowane wartości przekazywane z aplikacji po stronie serwera. Ręcznie uzupełnia ona stan konfiguracji bez wysyłania asynchronicznego żądania pobrania.
Dodatkowo musisz dodać opcję inicjowania, która umożliwia ustawienie firebase-server jako templateId w pakiecie SDK klienta. Konfiguruje to pakiet SDK tak, aby używał początkowego szablonu po stronie serwera do kolejnych pobrań, co zapewnia spójność parametrów i wartości warunkowych między klientem a serwerem.
export default function MyClientComponent({initialFetchResponse= ''} = {}) {
const app = initializeApp(firebaseConfig);
const config = getRemoteConfig(app, {
templateId: 'firebase-server',
initialFetchResponse
});
const paramValue = getString(config, 'my_rc_parameter_key');
return (
<div>{paramValue}</div>
);
}