Используйте 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>
  );
}