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>
);
}