כדי לספק גמישות מקסימלית, 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>
);
}