เริ่มต้นการกำหนดค่าระยะไกลของ Firebase


คุณใช้การกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ได้ ซึ่งช่วยให้แก้ไขรูปลักษณ์และลักษณะการทำงานของแอปได้โดยไม่ต้องกระจายการอัปเดตแอป คู่มือนี้จะแนะนำ ขั้นตอนในการเริ่มต้นใช้งาน และให้ตัวอย่างโค้ดบางส่วน ซึ่งทั้งหมดนี้สามารถ โคลนหรือดาวน์โหลดจาก firebase/quickstart-js ที่เก็บของ GitHub

ขั้นตอนที่ 1: เพิ่มและเริ่มต้น SDK การกำหนดค่าระยะไกล

  1. ติดตั้ง Firebase JS SDK และเริ่มต้น Firebase หากยังไม่ได้ทำ

  2. เพิ่ม Remote Config JS SDK และเริ่มการกำหนดค่าระยะไกล ดังนี้

Web Modular API

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

API เว็บเนมสเปซ

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

ออบเจ็กต์นี้ใช้เพื่อจัดเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงค่าพารามิเตอร์ที่อัปเดตแล้วจากแบ็กเอนด์ของการกำหนดค่าระยะไกล และควบคุมว่าจะให้แอปใช้ค่าที่ดึงมาได้เมื่อใด

ขั้นตอนที่ 2: กำหนดช่วงการดึงข้อมูลขั้นต่ำ

ในระหว่างการพัฒนา เราขอแนะนำให้กำหนดช่วงการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำ ดูข้อมูลเพิ่มเติมในการควบคุม

Web Modular API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

API เว็บเนมสเปซ

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

ขั้นตอนที่ 3: ตั้งค่าค่าพารามิเตอร์เริ่มต้นในแอป

คุณตั้งค่าค่าพารามิเตอร์เริ่มต้นในแอปได้ในออบเจ็กต์การกำหนดค่าระยะไกล เพื่อให้แอปทำงานตามที่ต้องการก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ของการกำหนดค่าระยะไกล เพื่อให้ค่าเริ่มต้นพร้อมใช้งานหากไม่ได้ตั้งค่าในแบ็กเอนด์

Web Modular API

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

API เว็บเนมสเปซ

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

หากกำหนดค่าพารามิเตอร์แบ็กเอนด์ของการกำหนดค่าระยะไกลไว้แล้ว คุณจะดาวน์โหลดไฟล์ 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

  1. ในแท็บพารามิเตอร์ ให้เปิดเมนูและเลือกดาวน์โหลดค่าเริ่มต้น
  2. เมื่อมีข้อความแจ้ง ให้เปิดใช้ .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: รับค่าพารามิเตอร์ไว้ใช้ในแอป

ตอนนี้คุณสามารถรับค่าพารามิเตอร์จากออบเจ็กต์การกำหนดค่าระยะไกล หากคุณกำหนดค่าในแบ็กเอนด์ในภายหลัง ให้ดึงข้อมูลดังกล่าว แล้วเปิดใช้งาน ค่าเหล่านั้นจะพร้อมใช้งานสำหรับแอปของคุณ หากต้องการหาค่าเหล่านี้ ให้เรียกใช้เมธอด getValue() ซึ่งระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์

Web Modular API

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

API เว็บเนมสเปซ

const val = remoteConfig.getValue("welcome_messsage");

ขั้นตอนที่ 5: ตั้งค่าพารามิเตอร์

คุณสามารถใช้คอนโซล Firebase หรือ API แบ็กเอนด์ของการกำหนดค่าระยะไกลเพื่อสร้างค่าเริ่มต้นฝั่งเซิร์ฟเวอร์ใหม่ที่ลบล้างค่าในแอปตามตรรกะแบบมีเงื่อนไขหรือการกำหนดเป้าหมายผู้ใช้ที่คุณต้องการ ส่วนนี้จะอธิบายขั้นตอนในคอนโซล Firebase ในการสร้างค่าเหล่านี้

  1. เปิดโปรเจ็กต์ในคอนโซล Firebase
  2. เลือกการกำหนดค่าระยะไกลจากเมนูเพื่อดูหน้าแดชบอร์ดการกำหนดค่าระยะไกล
  3. กำหนดพารามิเตอร์ที่มีชื่อเดียวกันกับพารามิเตอร์ที่กำหนดในแอป โดยคุณจะกำหนดค่าเริ่มต้นสำหรับพารามิเตอร์แต่ละรายการได้ (ซึ่งสุดท้ายแล้วจะลบล้างค่าเริ่มต้นในแอป) และยังกำหนดค่าแบบมีเงื่อนไขได้อีกด้วย ดูข้อมูลเพิ่มเติมได้ที่พารามิเตอร์และเงื่อนไขของการกำหนดค่าระยะไกล

ขั้นตอนที่ 6: ดึงข้อมูลและเปิดใช้งานค่า

  1. หากต้องการดึงค่าพารามิเตอร์จากแบ็กเอนด์การกำหนดค่าระยะไกล ให้เรียกใช้เมธอด fetchConfig() ระบบจะดึงค่าที่คุณกำหนดในแบ็กเอนด์และแคชไว้ในออบเจ็กต์การกำหนดค่าระยะไกล
  2. หากต้องการทำให้ค่าพารามิเตอร์ที่ดึงข้อมูลมาใช้งานกับแอปได้ ให้เรียกใช้เมธอด activate()

ในกรณีที่ต้องการดึงข้อมูลและเปิดใช้งานค่าในการเรียกครั้งเดียว ให้ใช้ fetchAndActivate() ดังที่แสดงในตัวอย่างนี้

Web Modular API

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

API เว็บเนมสเปซ

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

เนื่องจากค่าพารามิเตอร์ที่อัปเดตใหม่เหล่านี้ส่งผลต่อพฤติกรรมและรูปลักษณ์ของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงมาในแต่ละครั้งเพื่อให้แน่ใจว่าผู้ใช้จะได้รับประสบการณ์การใช้งานที่ราบรื่น เช่น ในครั้งถัดไปที่ผู้ใช้เปิดแอป ดูกลยุทธ์การโหลดการกำหนดค่าระยะไกลสำหรับข้อมูลเพิ่มเติมและตัวอย่าง

การควบคุม

หากแอปดึงข้อมูลหลายครั้งเกินไปในระยะเวลาสั้นๆ ระบบอาจควบคุมการเรียกการดึงข้อมูล ในกรณีดังกล่าว SDK จะแสดงข้อผิดพลาด FETCH_THROTTLE เราขอแนะนำให้คุณจับข้อผิดพลาดนี้แล้วลองอีกครั้งในโหมด Exponential Backoff โดยรอช่วงเวลานานขึ้นระหว่างคำขอดึงข้อมูลที่ตามมา

ในระหว่างการพัฒนาแอป คุณอาจต้องรีเฟรชแคชบ่อยๆ (หลายครั้งต่อชั่วโมง) เพื่อให้ปรับปรุงได้อย่างรวดเร็วขณะที่พัฒนาและทดสอบแอป คุณเพิ่มพร็อพเพอร์ตี้ชั่วคราวที่มีช่วงการดึงข้อมูลขั้นต่ำ (Settings.minimumFetchIntervalMillis) ในแอปได้ เพื่อรองรับการทำซ้ำอย่างรวดเร็วในโปรเจ็กต์ที่มีนักพัฒนาซอฟต์แวร์จำนวนมาก

ช่วงการดึงข้อมูลเวอร์ชันที่ใช้งานจริงเริ่มต้นและที่แนะนำสำหรับการกำหนดค่าระยะไกลคือ 12 ชั่วโมง ซึ่งหมายความว่าระบบจะไม่ดึงข้อมูลการกำหนดค่าจากแบ็กเอนด์มากกว่า 1 ครั้งในกรอบเวลา 12 ชั่วโมง ไม่ว่าจริงๆ แล้วจะมีการเรียกการดึงข้อมูลกี่ครั้งก็ตาม ช่วงการดึงข้อมูลขั้นต่ำจะกำหนดตามลำดับต่อไปนี้

  1. พารามิเตอร์ใน Settings.minimumFetchIntervalMillis
  2. ค่าเริ่มต้นคือ 12 ชั่วโมง

ขั้นตอนถัดไป

ลองสำรวจกรณีการใช้งานการกำหนดค่าระยะไกลและดูเอกสารแนวคิดสำคัญและเอกสารกลยุทธ์ขั้นสูงต่อไปนี้หากยังไม่ได้ดู