Используйте Remote Config для рендеринга на стороне сервера в веб-приложениях.

Для обеспечения максимальной гибкости Firebase Remote Config поддерживает интеграцию SDK как на стороне клиента, так и на стороне сервера для веб-приложений. Это означает, что ваше приложение может:

  • Загрузите и оцените шаблоны Remote Config на своем сервере: ваш сервер может загрузить шаблон Remote Config и напрямую оценить условия нацеливания.
  • Оптимизация производительности начальной загрузки страницы: в сценариях рендеринга на стороне сервера сервер может предоставить клиенту расчётную конфигурацию во время начальной загрузки страницы. Это повышает производительность, предоставляя необходимые данные о конфигурации заранее.

Такой подход позволяет вам динамически управлять поведением и конфигурацией вашего приложения, особенно в настройках рендеринга на стороне сервера.

Настройте рендеринг на стороне сервера для ваших приложений

Чтобы настроить рендеринг на стороне сервера с помощью Remote Config в вашем веб-приложении, обновите клиентские и серверные приложения, выполнив следующие шаги.

Шаг 1: Обновите серверное приложение

В вашем серверном приложении, где вы реализовали Firebase Admin Node.js SDK, включите класс 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>
  );
}