คุณสามารถใช้ Firebase Remote Config เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ ซึ่งจะช่วยให้คุณแก้ไขรูปลักษณ์และลักษณะการทำงานของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป คู่มือนี้จะแนะนำขั้นตอนเริ่มต้นใช้งานและแสดงโค้ดตัวอย่างบางส่วน ซึ่งทั้งหมดนี้สามารถโคลนหรือดาวน์โหลดได้จากที่เก็บ GitHub ของ firebase/quickstart-js
ขั้นตอนที่ 1: เพิ่มและเริ่มต้น Remote Config SDK
หากคุณยังไม่ได้ดำเนินการ ติดตั้ง Firebase JS SDK และเริ่มต้น Firebase
เพิ่ม Remote Config JS SDK และเริ่มต้น Remote Config
Web
import { initializeApp } from "firebase/app";
import { getRemoteConfig } from "firebase/remote-config";
// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
// Initialize Remote Config and get a reference to the service
const remoteConfig = getRemoteConfig(app);
Web
import firebase from "firebase/compat/app";
import "firebase/compat/remote-config";
// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
// Initialize Remote Config and get a reference to the service
const remoteConfig = firebase.remoteConfig();
ออบเจ็กต์นี้ใช้จัดเก็บค่าพารามิเตอร์เริ่มต้นในแอป อัปเดตการดึงข้อมูล ค่าพารามิเตอร์จากแบ็กเอนด์ Remote Config และควบคุมเมื่อดึงข้อมูล ที่ใช้ได้กับแอปของคุณ
ขั้นตอนที่ 2: กำหนดช่วงเวลาการดึงข้อมูลขั้นต่ำ
ในระหว่างการพัฒนา เราขอแนะนําให้ตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำให้ต่ำ ดูข้อมูลเพิ่มเติมที่การควบคุม
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
ขั้นตอนที่ 3: ตั้งค่าพารามิเตอร์เริ่มต้นในแอป
คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ Remote Config เพื่อให้แอปทำงานตามที่ตั้งใจไว้ก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ Remote Config และเพื่อให้มีค่าเริ่มต้นในกรณีที่ไม่ได้ตั้งค่าไว้ในแบ็กเอนด์
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
หากกําหนดค่าRemote Configค่าพารามิเตอร์แบ็กเอนด์แล้ว คุณสามารถดาวน์โหลดไฟล์ JSON ที่สร้างขึ้นซึ่งมีค่าเริ่มต้นทั้งหมดและรวมไว้ใน App Bundle ได้โดยทำดังนี้
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json
Firebase console
- ในแท็บพารามิเตอร์ ให้เปิด เมนู แล้วเลือกดาวน์โหลดค่าเริ่มต้น
- เมื่อมีข้อความแจ้ง ให้เปิดใช้ .json สำหรับเว็บ แล้วคลิกดาวน์โหลดไฟล์
ตัวอย่างต่อไปนี้แสดง 2 วิธีในการนําเข้าและตั้งค่าเริ่มต้นในแอป ตัวอย่างแรกใช้ fetch
ซึ่งจะส่งคําขอ HTTP ไปยังไฟล์ค่าเริ่มต้นที่รวมอยู่ใน App Bundle
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
ตัวอย่างถัดไปใช้ require
ซึ่งจะคอมไพล์ค่าลงในแอปของคุณขณะที่บิลด์
let rcDefaults = require('./remote_config_defaults.json'); remoteConfig.defaultConfig = rcDefaults;
ขั้นตอนที่ 4: รับค่าพารามิเตอร์เพื่อใช้ในแอป
ตอนนี้คุณรับค่าพารามิเตอร์จากออบเจ็กต์ Remote Config ได้แล้ว หากคุณ
กำหนดค่าในแบ็กเอนด์ ดึงข้อมูล แล้วเปิดใช้งานค่าเหล่านั้น
ที่พร้อมใช้งานกับแอปของคุณ หากต้องการรับค่าเหล่านี้ ให้เรียกใช้
getValue()
ที่ระบุเมธอด
เป็นอาร์กิวเมนต์
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
ขั้นตอนที่ 5: ตั้งค่าค่าพารามิเตอร์
เมื่อใช้Firebaseคอนโซลหรือ Remote Config API แบ็กเอนด์ คุณสามารถสร้างค่าเริ่มต้นใหม่ฝั่งเซิร์ฟเวอร์ที่จะลบล้างค่าในแอปตามตรรกะแบบมีเงื่อนไขหรือการกำหนดเป้าหมายผู้ใช้ที่ต้องการ ส่วนนี้ จะแนะนำ Firebase ขั้นตอนของคอนโซลในการสร้างค่าเหล่านี้
- เปิดโปรเจ็กต์ในคอนโซล Firebase
- เลือก Remote Config จากเมนูเพื่อดูหน้าแดชบอร์ด Remote Config
- กําหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกําหนดในแอป คุณสามารถกําหนดค่าเริ่มต้นสําหรับพารามิเตอร์แต่ละรายการได้ (ซึ่งจะลบล้างค่าเริ่มต้นในแอปในที่สุด) และคุณยังกําหนดค่าแบบมีเงื่อนไขได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ Remote Config พารามิเตอร์และเงื่อนไข
ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า
- หากต้องการดึงข้อมูลค่าพารามิเตอร์จากแบ็กเอนด์ Remote Config ให้เรียกเมธอด
fetchConfig()
ระบบจะดึงข้อมูลค่าใดก็ตามที่คุณกำหนดไว้ในแบ็กเอนด์และ แคชในออบเจ็กต์ Remote Config - หากต้องการให้ค่าพารามิเตอร์ที่ดึงข้อมูลไว้ใช้กับแอปได้ ให้เรียกใช้เมธอด
activate()
ในกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในคําเรียกใช้เดียว ให้ใช้ fetchAndActivate()
ดังที่แสดงในตัวอย่างต่อไปนี้
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อลักษณะการทำงานและลักษณะที่ปรากฏของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงข้อมูลในเวลาที่ผู้ใช้ได้รับประสบการณ์การใช้งานที่ราบรื่น เช่น เมื่อผู้ใช้เปิดแอปของคุณในครั้งถัดไป ดูข้อมูลเพิ่มเติมและตัวอย่างได้ที่กลยุทธ์การโหลดการกําหนดค่าระยะไกล
การควบคุม
หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้นๆ การดึงข้อมูลอาจ
มีการควบคุม ในกรณีดังกล่าว SDK จะแสดงข้อผิดพลาด FETCH_THROTTLE
เราขอแนะนำให้ตรวจจับข้อผิดพลาดนี้ แล้วลองอีกครั้งในโหมด Exponential Backoff
ซึ่งต้องรอนานกว่าระหว่างคำขอดึงข้อมูลครั้งต่อๆ ไป
ระหว่างการพัฒนาแอป คุณอาจต้องรีเฟรชแคชบ่อยมาก
(หลายครั้งต่อชั่วโมง) เพื่อให้คุณปรับปรุงได้อย่างรวดเร็วในขณะที่คุณพัฒนาและทดสอบ
แอป เพื่อรองรับการดำเนินการซ้ำอย่างรวดเร็วในโครงการที่มีนักพัฒนาซอฟต์แวร์จำนวนมาก คุณ
สามารถเพิ่มพร็อพเพอร์ตี้ที่มีช่วงเวลาการดึงข้อมูลขั้นต่ำต่ำได้ชั่วคราว
(Settings.minimumFetchIntervalMillis
) ในแอปของคุณ
ช่วงเวลาการดึงข้อมูลเวอร์ชันที่ใช้งานจริงเริ่มต้นและที่แนะนำสำหรับ Remote Config คือ 12 ชั่วโมง หมายความว่าระบบจะไม่ดึงข้อมูลการกำหนดค่าจากแบ็กเอนด์มากกว่า 1 ครั้งใน 12 ชั่วโมง โดยไม่คำนึงถึงว่ามีการดึงข้อมูลจริงๆ เป็นจำนวนเท่าใด โดยเฉพาะอย่างยิ่ง ช่วงเวลาการดึงข้อมูลขั้นต่ำจะกำหนดตามลำดับต่อไปนี้
- พารามิเตอร์ใน
Settings.minimumFetchIntervalMillis
- ค่าเริ่มต้นคือ 12 ชั่วโมง
ขั้นตอนถัดไป
หากยังไม่ได้สำรวจ โปรดดู Remote Config กรณีการใช้งาน แล้วลองดูที่ แนวคิดหลักและเอกสารกลยุทธ์ขั้นสูง ได้แก่