คุณใช้การกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ได้ ช่วยให้คุณปรับเปลี่ยนลักษณะและการทำงานของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป คู่มือนี้จะแนะนำคุณตลอดขั้นตอนในการเริ่มต้นและให้โค้ดตัวอย่าง ซึ่งทั้งหมดนั้นพร้อมสำหรับการโคลนหรือดาวน์โหลดจากที่เก็บ firebase/quickstart-js GitHub
เพิ่มและเริ่มต้น Remote Config SDK
หากคุณยังไม่ได้ ติดตั้ง ให้ติดตั้ง Firebase JS SDK และเริ่มต้น Firebase
เพิ่ม Remote Config JS SDK และเริ่มต้นการกำหนดค่าระยะไกล:
Web version 9
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 version 8
import firebase from "firebase/app"; import "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 firebase.initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = firebase.remoteConfig();
ออบเจ็กต์นี้ใช้เพื่อเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์การกำหนดค่าระยะไกล และควบคุมเวลาที่จะให้ค่าที่ดึงมานั้นพร้อมใช้งานสำหรับแอปของคุณ
กำหนดช่วงเวลาการดึงข้อมูลขั้นต่ำ
ในระหว่างการพัฒนา ขอแนะนำให้ตั้งค่าช่วงการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำ ดูการ ควบคุมปริมาณ สำหรับข้อมูลเพิ่มเติม
Web version 9
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web version 8
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
ตั้งค่าพารามิเตอร์เริ่มต้นในแอป
คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ Remote Config เพื่อให้แอปของคุณทำงานตามที่ตั้งใจไว้ก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ Remote Config และเพื่อให้ค่าดีฟอลต์พร้อมใช้งานหากไม่มีการตั้งค่าบนแบ็กเอนด์
Web version 9
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web version 8
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
หากคุณได้กำหนดค่าพารามิเตอร์แบ็คเอนด์การกำหนดค่าระยะไกลแล้ว คุณสามารถดาวน์โหลดไฟล์ JSON ที่สร้างขึ้นซึ่งมีค่าเริ่มต้นทั้งหมดและรวมไว้ใน App Bundle ของคุณ:
พักผ่อน
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
- ในแท็บ Parameters ให้เปิด Menu และเลือก Download default values
- เมื่อได้รับแจ้ง ให้เปิดใช้งาน . json สำหรับเว็บ จากนั้นคลิก ดาวน์โหลดไฟล์
ตัวอย่างต่อไปนี้แสดงสองวิธีที่คุณสามารถนำเข้าและตั้งค่าเริ่มต้นในแอปของคุณ ตัวอย่างแรกใช้ fetch
ซึ่งจะสร้างคำขอ HTTP ไปยังไฟล์เริ่มต้นที่รวมอยู่ในชุดแอปของคุณ:
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;
รับค่าพารามิเตอร์เพื่อใช้ในแอปของคุณ
ตอนนี้คุณสามารถรับค่าพารามิเตอร์จากอ็อบเจ็กต์ Remote Config หากคุณตั้งค่าในแบ็กเอนด์ในภายหลัง ดึงข้อมูล จากนั้นเปิดใช้งาน ค่าเหล่านั้นจะใช้ได้กับแอปของคุณ หากต้องการรับค่าเหล่านี้ ให้เรียกเมธอด getValue()
โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์
Web version 9
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web version 8
const val = remoteConfig.getValue("welcome_messsage");
ตั้งค่าพารามิเตอร์
การใช้คอนโซล Firebase หรือ API แบ็คเอนด์การกำหนดค่าระยะไกล คุณสามารถสร้างค่าเริ่มต้นฝั่งเซิร์ฟเวอร์ใหม่ที่แทนที่ค่าในแอปตามตรรกะตามเงื่อนไขที่คุณต้องการหรือการกำหนดเป้าหมายผู้ใช้ ส่วนนี้จะอธิบายขั้นตอนคอนโซล Firebase เพื่อสร้างค่าเหล่านี้
- ใน คอนโซล Firebase ให้เปิดโปรเจ็กต์ของคุณ
- เลือก การกำหนดค่าระยะไกล จากเมนูเพื่อดูแดชบอร์ดการกำหนดค่าระยะไกล
- กำหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกำหนดในแอปของคุณ สำหรับแต่ละพารามิเตอร์ คุณสามารถตั้งค่าเริ่มต้น (ซึ่งในที่สุดจะแทนที่ค่าเริ่มต้นในแอป) และคุณยังสามารถตั้งค่าตามเงื่อนไขได้อีกด้วย หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ พารามิเตอร์และเงื่อนไขการกำหนดค่าระยะไกล
ดึงและเปิดใช้งานค่า
- ในการดึงค่าพารามิเตอร์จากแบ็กเอนด์ Remote Config ให้เรียก
fetchConfig()
ค่าใดๆ ที่คุณตั้งค่าไว้ในแบ็กเอนด์จะถูกดึงข้อมูลและแคชในออบเจ็กต์ Remote Config - หากต้องการให้ค่าพารามิเตอร์ที่ดึงมาใช้ได้กับแอปของคุณ ให้เรียกใช้เมธอด
activate()
สำหรับกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในการโทรครั้งเดียว ให้ใช้ fetchAndActivate()
ดังที่แสดงในตัวอย่างนี้:
Web version 9
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web version 8
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อการทำงานและรูปลักษณ์ของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงมาในแต่ละครั้ง ซึ่งจะทำให้ผู้ใช้ได้รับประสบการณ์ที่ราบรื่น เช่น ในครั้งต่อไปที่ผู้ใช้เปิดแอปของคุณ ดู กลยุทธ์การโหลดการกำหนดค่าระยะไกล สำหรับข้อมูลเพิ่มเติมและตัวอย่าง
การควบคุมปริมาณ
หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้นๆ การโทรอาจถูกจำกัด ในกรณีดังกล่าว SDK จะแสดงข้อผิดพลาด FETCH_THROTTLE
ขอแนะนำให้คุณตรวจจับข้อผิดพลาดนี้และลองอีกครั้งในโหมดแบ็คออฟแบบเอ็กซ์โพเนนเชียล โดยรอนานขึ้นระหว่างคำขอดึงข้อมูลในครั้งต่อๆ ไป
ในระหว่างการพัฒนาแอพ คุณอาจต้องการรีเฟรชแคชบ่อยมาก (หลาย ๆ ครั้งต่อชั่วโมง) เพื่อให้คุณสามารถทำซ้ำได้อย่างรวดเร็วในขณะที่พัฒนาและทดสอบแอพของคุณ เพื่อรองรับการวนซ้ำอย่างรวดเร็วของโปรเจ็กต์ที่มีนักพัฒนาจำนวนมาก คุณสามารถเพิ่มพร็อพเพอร์ตี้ชั่วคราวด้วยช่วงเวลาการดึงข้อมูลขั้นต่ำที่ต่ำ ( Settings.minimumFetchIntervalMillis
) ในแอปของคุณชั่วคราว
ช่วงเวลาการดึงข้อมูลที่ใช้งานจริงที่เป็นค่าเริ่มต้นและที่แนะนำสำหรับการกำหนดค่าระยะไกลคือ 12 ชั่วโมง ซึ่งหมายความว่าระบบจะไม่ดึงการกำหนดค่าจากแบ็กเอนด์มากกว่าหนึ่งครั้งในหน้าต่าง 12 ชั่วโมง ไม่ว่าจะมีการเรียกการดึงข้อมูลจริงกี่ครั้งก็ตาม โดยเฉพาะอย่างยิ่ง ช่วงเวลาการดึงข้อมูลขั้นต่ำจะถูกกำหนดในลำดับต่อไปนี้:
- พารามิเตอร์ใน
Settings.minimumFetchIntervalMillis
- ค่าเริ่มต้นคือ 12 ชั่วโมง
ขั้นตอนถัดไป
หากคุณยังไม่ได้ดำเนินการ ให้สำรวจ กรณีการใช้งาน การกำหนดค่าระยะไกล และดูแนวคิดหลักและเอกสารเกี่ยวกับกลยุทธ์ขั้นสูง ซึ่งรวมถึง: