התחל עם Firebase Remote Config


אתה יכול להשתמש ב-Firebase Remote Config כדי להגדיר פרמטרים באפליקציה שלך ולעדכן את הערכים שלהם בענן, מה שמאפשר לך לשנות את המראה וההתנהגות של האפליקציה שלך מבלי להפיץ עדכון לאפליקציה. מדריך זה מנחה אותך בשלבים לתחילת העבודה ומספק קוד לדוגמה, שכל זה זמין לשכפול או הורדה ממאגר Firebase/quickstart-js GitHub.

שלב 1: הוסף ואתחול את ה-Remote Config SDK

  1. אם עדיין לא עשית זאת, התקן את Firebase JS SDK ואתחל את Firebase .

  2. הוסף את ה-Remote Config JS SDK ואתחל את Remote Config:

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

אובייקט זה משמש לאחסון ערכי ברירת מחדל של פרמטרים בתוך האפליקציה, לשליפה של ערכי פרמטרים מעודכנים מ-Remote Config, ולבקר מתי ערכים שנשלפו יהיו זמינים לאפליקציה שלך.

שלב 2: הגדר מרווח אחזור מינימלי

במהלך הפיתוח, מומלץ להגדיר מרווח אחזור מינימלי נמוך יחסית. למידע נוסף, עיין במצערת .

Web modular API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web namespaced API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

שלב 3: הגדר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה

אתה יכול להגדיר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה באובייקט Config Remote, כך שהאפליקציה שלך תתנהג כמתוכנן לפני שהיא מתחברת ל-Remote Config Backend, וכך ערכי ברירת מחדל זמינים אם אף אחד מהם אינו מוגדר ב-backend.

Web modular API

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

Web namespaced API

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

אם כבר הגדרתם את ערכי הפרמטרים האחוריים של Config Remote, תוכלו להוריד קובץ JSON שנוצר הכולל את כל ערכי ברירת המחדל ולכלול אותו בחבילת האפליקציות שלכם:

מנוחה

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 for web ולאחר מכן לחץ על הורד קובץ .

הדוגמאות הבאות מציגות שתי דרכים שונות שבהן תוכל לייבא ולהגדיר ערכי ברירת מחדל באפליקציה שלך. הדוגמה הראשונה משתמשת 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;

שלב 4: קבל ערכי פרמטרים לשימוש באפליקציה שלך

כעת אתה יכול לקבל ערכי פרמטרים מאובייקט התצורה המרוחקת. אם מאוחר יותר תגדיר ערכים ב-backend, תביא אותם ואז תפעיל אותם, הערכים האלה זמינים לאפליקציה שלך. כדי לקבל ערכים אלה, קרא למתודה getValue() וספק את מפתח הפרמטר כארגומנט.

Web modular API

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

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

Web namespaced API

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

שלב 5: הגדר ערכי פרמטרים

באמצעות מסוף Firebase או ממשקי API של Config Backend Remote , תוכל ליצור ערכי ברירת מחדל חדשים בצד השרת שיעקפו את הערכים בתוך האפליקציה בהתאם להיגיון המותנה הרצוי או למיקוד המשתמש. חלק זה מנחה אותך בשלבי מסוף Firebase ליצירת ערכים אלה.

  1. במסוף Firebase , פתח את הפרויקט שלך.
  2. בחר ב- Remote Config מהתפריט כדי להציג את לוח המחוונים של Remote Config.
  3. הגדר פרמטרים עם אותם שמות כמו הפרמטרים שהגדרת באפליקציה שלך. עבור כל פרמטר, אתה יכול להגדיר ערך ברירת מחדל (שבסופו של דבר יעקוף את ערך ברירת המחדל בתוך האפליקציה) ואתה יכול גם להגדיר ערכים מותנים. למידע נוסף, ראה פרמטרים ותנאים של תצורה מרוחקת .

שלב 6: אחזר והפעל ערכים

  1. כדי להביא ערכי פרמטרים מ-Remote Config Backend, קרא למתודה fetchConfig() . כל הערכים שתגדיר בקצה העורפי נשלפים ונשמרים באובייקט התצורה המרוחקת.
  2. כדי להפוך ערכי פרמטרים שהובאו לזמינים לאפליקציה שלך, קרא למתודה activate() .

למקרים שבהם ברצונך לאחזר ולהפעיל ערכים בקריאה אחת, השתמש ב- fetchAndActivate() כפי שמוצג בדוגמה זו:

Web modular API

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

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

Web namespaced API

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

מכיוון שערכי הפרמטרים המעודכנים האלה משפיעים על ההתנהגות והמראה של האפליקציה שלך, עליך להפעיל את הערכים שנשלפו בזמן שמבטיח חוויה חלקה למשתמש שלך, כמו בפעם הבאה שהמשתמש יפתח את האפליקציה שלך. ראה אסטרטגיות טעינה של תצורה מרחוק למידע נוסף ודוגמאות.

מצערת

אם אפליקציה מאחזרת יותר מדי פעמים בפרק זמן קצר, שיחות האחזור עלולות להיות מצטמצמות. במקרים כאלה, ה-SDK זורק שגיאת FETCH_THROTTLE . מומלץ לתפוס שגיאה זו ולנסות שוב במצב גיבוי אקספוננציאלי, תוך המתנה של מרווחים ארוכים יותר בין בקשות אחזור עוקבות.

במהלך פיתוח האפליקציה, ייתכן שתרצה לרענן את המטמון בתדירות גבוהה מאוד (פעמים רבות בשעה) כדי לאפשר לך לבצע חזרה מהירה תוך כדי פיתוח ובדיקת האפליקציה. כדי להתאים לאיטרציה מהירה בפרויקט עם מפתחים רבים, אתה יכול להוסיף זמנית נכס עם מרווח אחזור מינימלי נמוך ( Settings.minimumFetchIntervalMillis ) באפליקציה שלך.

ברירת המחדל והמומלץ לאחזור הייצור עבור Config Remote הוא 12 שעות, מה שאומר שתצורות לא יוחזרו מה-backend יותר מפעם אחת בחלון של 12 שעות, ללא קשר למספר קריאות האחזור שבוצעו בפועל. באופן ספציפי, מרווח האחזור המינימלי נקבע בסדר הבא:

  1. הפרמטר ב- Settings.minimumFetchIntervalMillis .
  2. ערך ברירת המחדל הוא 12 שעות.

הצעדים הבאים

אם עדיין לא עשית זאת, חקור את מקרי השימוש התצורה המרוחקים ובחן כמה מתפיסות המפתח ותיעוד אסטרטגיות מתקדמות, כולל: