Aby zapewnić maksymalną elastyczność, Firebase Remote Config obsługuje integrację pakietu SDK po stronie klienta i serwera w przypadku aplikacji internetowych. Oznacza to, że aplikacja może:
- Pobieranie i ocenianie szablonów Remote Config na serwerze: serwer może pobrać szablon Remote Config i bezpośrednio ocenić warunki kierowania.
- Optymalizacja wydajności wstępnego wczytywania strony: w przypadku scenariuszy renderowania po stronie serwera serwer może przekazać zweryfikowaną konfigurację klientowi podczas wstępnego wczytywania strony. Dzięki temu wydajność się poprawi, ponieważ niezbędne dane konfiguracyjne zostaną przekazane z wyprzedzeniem.
Dzięki temu możesz dynamicznie zarządzać działaniem i konfiguracją aplikacji, zwłaszcza w przypadku konfiguracji renderowania po stronie serwera.
Konfigurowanie renderowania po stronie serwera w przypadku aplikacji
Aby skonfigurować renderowanie po stronie serwera za pomocą Remote Config w aplikacji internetowej, zaktualizuj aplikacje klienta i serwera, wykonując podane niżej czynności.
Krok 1. Zaktualizuj aplikację po stronie serwera
W aplikacji serwera, w której zaimplementowano pakiet SDK Firebase Admin Node.js, dodaj klasę RemoteConfigFetchResponse
, która przyjmuje istniejący obiekt ServerConfig
. Możesz go użyć do serializacji wartości konfiguracji, które można przekazać klientowi.
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ę klienta
W aplikacji klienta, która implementuje pakiet SDK JavaScript Firebase, dodaj opcję konfiguracji initialFetchResponse
, aby akceptować serializowane wartości przekazywane z aplikacji serwera. Pozwoli to ręcznie nasycać stan konfiguracji bez wysyłania żądania pobierania asynchronicznego.
Dodatkowo musisz uwzględnić opcję inicjowania, która umożliwia ustawienie wartości firebase-server
jako templateId
w pakiecie SDK klienta. Spowoduje to skonfigurowanie pakietu SDK do używania początkowego szablonu po stronie serwera do kolejnych pobierania, co zapewni spójne parametry i wartości warunkowe po stronie klienta i serwera.
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>
);
}