טריגרים של הגדרת תצורה מרחוק


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

הפעלת פונקציית Remote Config

כדי להגדיר handler לאירועים מסוג Remote Config, משתמשים בפונקציה onUpdate() של מודול functions.remoteConfig. אובייקט TemplateVersion שמוחזר על ידי onUpdate מכיל את שדות המטא-נתונים של המפתח לעדכון תבנית, כמו מספר הגרסה ושעת העדכון. אפשר גם לאחזר את האימייל של המשתמש שביצע את העדכון, עם השם ותמונה אם יש.

דוגמה לפונקציה Remote Config שמחזירה את ההבדל בין כל גרסה מעודכנת לבין הגרסה שהיא החליפה. הפונקציה בודקת את השדה versionNumber של אובייקט התבנית ומאחזרת את הגרסה הנוכחית (המעודכנת) יחד עם הגרסה הקודמת:

exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => {
  return admin.credential.applicationDefault().getAccessToken()
    .then(accessTokenObj => {
      return accessTokenObj.access_token;
    })
    .then(accessToken => {
      const currentVersion = versionMetadata.versionNumber;
      const templatePromises = [];
      templatePromises.push(getTemplate(currentVersion, accessToken));
      templatePromises.push(getTemplate(currentVersion - 1, accessToken));

      return Promise.all(templatePromises);
    })
    .then(results => {
      const currentTemplate = results[0];
      const previousTemplate = results[1];

      const diff = jsonDiff.diffString(previousTemplate, currentTemplate);

      functions.logger.log(diff);

      return null;
    }).catch(error => {
      functions.logger.error(error);
      return null;
    });
});

בדוגמה הזו נעשה שימוש במודולים json-diff ו-request-promise כדי ליצור את ההבדל ולבנות את הבקשה לאחזור אובייקט התבנית. דוגמה שמשלבת לוגיקה של לקוח Remote Config וגם Firebase Cloud Messaging זמינה במאמר הפצת עדכונים של Remote Config בזמן אמת.