Для обеспечения максимальной гибкости Firebase Remote Config поддерживает интеграцию SDK как на стороне клиента, так и на стороне сервера для веб-приложений. Это означает, что ваше приложение может:
- Загрузка и оценка шаблонов Remote Config на вашем сервере: ваш сервер может загрузить шаблон Remote Config и напрямую оценить условия целевого назначения.
- Оптимизация производительности при первоначальной загрузке страницы: в сценариях рендеринга на стороне сервера сервер может предоставить клиенту оцененную конфигурацию во время первоначальной загрузки страницы. Это повышает производительность за счет предоставления необходимых данных конфигурации заранее.
Этот подход позволяет динамически управлять поведением и конфигурацией вашего приложения, особенно в системах рендеринга на стороне сервера.
Настройте рендеринг на стороне сервера для ваших приложений.
Для настройки серверного рендеринга с помощью Remote Config в вашем веб-приложении обновите клиентское и серверное приложения, выполнив следующие действия.
Шаг 1: Обновите ваше серверное приложение.
В вашем серверном приложении, где вы реализовали SDK Firebase Admin для Node.js, добавьте класс RemoteConfigFetchResponse , который принимает существующий ServerConfig . Вы можете использовать его для сериализации значений конфигурации, которые затем будут переданы вашему клиенту.
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>
);
}
Шаг 2: Обновите клиентское приложение.
В клиентском приложении, использующем Firebase Javascript SDK, добавьте параметр конфигурации initialFetchResponse для приема сериализованных значений, передаваемых из серверного приложения. Это позволит вручную заполнить состояние конфигурации без выполнения асинхронного запроса на получение данных.
Кроме того, необходимо добавить параметр инициализации, позволяющий установить firebase-server в качестве templateId в клиентском SDK. Это настроит SDK на использование исходного серверного шаблона для последующих запросов, обеспечивая согласованность параметров и условных значений между клиентом и сервером.
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>
);
}