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