מפעילי תצורה מרחוק


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

הפעל פונקציית Config מרחוק

כדי להגדיר מטפל עבור אירועי 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 כדי ליצור את ה-diff ולבנות את הבקשה לקבל את אובייקט התבנית. לדוגמא המשלבת את לוגיקה של לקוח Config מרחוק וכן הודעות בענן Firebase, ראה הפצת עדכוני Config מרחוק בזמן אמת .