از Remote Config برای رندر سمت سرور در برنامه های کاربردی وب استفاده کنید

برای ارائه حداکثر انعطاف‌پذیری، Firebase Remote Config از ادغام SDK سمت کلاینت و سمت سرور برای برنامه‌های وب پشتیبانی می‌کند. این بدان معناست که برنامه شما می‌تواند:

  • دریافت و ارزیابی الگوهای Remote Config روی سرور شما: سرور شما می‌تواند الگوی Remote Config را دانلود کرده و شرایط هدف‌گذاری را مستقیماً ارزیابی کند.
  • بهینه‌سازی عملکرد بارگذاری اولیه صفحه: برای سناریوهای رندر سمت سرور، سرور می‌تواند پیکربندی ارزیابی‌شده را در طول بارگذاری اولیه صفحه در اختیار کلاینت قرار دهد. این کار با ارائه داده‌های پیکربندی لازم از قبل، عملکرد را بهبود می‌بخشد.

این رویکرد به شما قدرت می‌دهد تا رفتار و پیکربندی برنامه خود را به صورت پویا، به ویژه در تنظیمات رندر سمت سرور، مدیریت کنید.

رندر سمت سرور را برای برنامه‌های خود تنظیم کنید

برای پیکربندی رندر سمت سرور با Remote Config در برنامه وب خود، برنامه‌های کلاینت و سرور خود را با استفاده از مراحل زیر به‌روزرسانی کنید.

مرحله ۱: برنامه سمت سرور خود را به‌روزرسانی کنید

در برنامه سرور خود، جایی که 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>
  );
}

مرحله ۲: برنامه کلاینت خود را به‌روزرسانی کنید

در برنامه‌ی کلاینت شما، که 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>
  );
}