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


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

ขั้นตอนที่ 1: เพิ่มและเริ่มต้น SDK ของ Remote Config

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

  2. เพิ่ม 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

  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: รับค่าพารามิเตอร์เพื่อใช้ในแอป

ตอนนี้คุณรับค่าพารามิเตอร์จากออบเจ็กต์ 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 หรือ API แบ็กเอนด์ Remote Config รายการ คุณสามารถสร้างค่าเริ่มต้นฝั่งเซิร์ฟเวอร์ใหม่ๆ ที่ลบล้างค่าในแอป ตามตรรกะตามเงื่อนไขหรือการกำหนดเป้าหมายผู้ใช้ที่คุณต้องการ ส่วนนี้ จะแนะนำ Firebase ขั้นตอนของคอนโซลในการสร้างค่าเหล่านี้

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

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

  1. หากต้องการดึงข้อมูลค่าพารามิเตอร์จากแบ็กเอนด์ Remote Config ให้เรียกเมธอด fetchConfig() ระบบจะดึงข้อมูลค่าใดก็ตามที่คุณกำหนดไว้ในแบ็กเอนด์และ แคชในออบเจ็กต์ Remote Config
  2. หากต้องการให้ค่าพารามิเตอร์ที่ดึงข้อมูลไว้ใช้กับแอปได้ ให้เรียกใช้เมธอด 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 ชั่วโมง โดยไม่คำนึงถึงว่ามีการดึงข้อมูลจริงๆ เป็นจำนวนเท่าใด โดยเฉพาะอย่างยิ่ง ช่วงเวลาการดึงข้อมูลขั้นต่ำจะกำหนดตามลำดับต่อไปนี้

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

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

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