Catch up on everthing we announced at this year's Firebase Summit. Learn more

قالب و تنظیم نسخه از راه دور

قالب Remote Config مجموعه ای از پارامترها و شرایط فرمت JSON در سمت سرور است که برای پروژه Firebase خود ایجاد کرده اید. شما می توانید تغییر دهید و مدیریت قالب با استفاده از فایربیس کنسول، که محتویات این الگو را در فرمت های گرافیکی در پارامترهای و شرایط زبانه. شما همچنین می توانید استفاده از پیکربندی از راه دور باطن رابط های برنامه کاربردی یا فایربیس CLI برای تغییر و مدیریت پیکربندی خود را.

در اینجا نمونه ای از یک فایل قالب آورده شده است:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

هر بار که پارامترها را به روز می کنید ، Remote Config یک قالب Remote Config جدید ایجاد می کند و قالب قبلی را به عنوان نسخه ای ذخیره می کند که می توانید در صورت نیاز بازیابی یا به آن برگردید. تعداد نسخه ها به طور متوالی از مقدار اولیه ذخیره شده توسط Remote Config افزایش می یابد. همه قالب ها شامل یک version زمینه به عنوان نشان داده شده است، شامل فراداده که نسخه خاص.

با استفاده از کنسول Firebase ، Firebase CLI یا API های پشتیبان Remote Config ، می توانید این وظایف مدیریت نسخه را انجام دهید:

  • لیست تمام نسخه های قالب ذخیره شده
  • بازیابی یک نسخه خاص
  • بازگشت به نسخه خاص

هنگام مدیریت قالب های پیکربندی از راه دور ، آستانه انقضا را در نظر داشته باشید: 90 روز از زمان ایجاد ، یا مجموع محدودیت 300 نسخه ذخیره شده. اگر می خواهید یک الگو را خارج از محدودیت ها ذخیره یا بازگردانید ، آن را به صورت دستی ذخیره و ذخیره کنید. فعال از راه دور قالب فعلی پیکربندی در حال استفاده توسط نرم افزار خود را منقضی نمی کند؛ با این حال ، اگر بیش از 90 روز از زمان ایجاد فعال بوده و با یک به روزرسانی جایگزین شده باشد ، نمی توان آن را دوباره بازیابی کرد (به دلیل انقضا).

نسخه های قالب Remote Config را مدیریت کنید

این بخش نحوه مدیریت نسخه های قالب Remote Config را توضیح می دهد. برای جزئیات بیشتر در مورد چگونگی ایجاد، ویرایش و ذخیره در قالب برنامه را، و اصلاح از راه دور پیکربندی برنامه نویسی .

لیست تمام نسخه های ذخیره شده قالب Remote Config

می توانید لیستی از تمام نسخه های ذخیره شده قالب Remote Config را بازیابی کنید. مثلا:

Node.js

function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}

جاوا

ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
while (page != null) {
  for (Version version : page.getValues()) {
    System.out.println("Version: " + version.getVersionNumber());
  }
  page = page.getNextPage();
}

// Iterate through all versions. This will still retrieve versions in batches.
page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
for (Version version : page.iterateAll()) {
  System.out.println("Version: " + version.getVersionNumber());
}

باقی مانده

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>:listVersions

کنسول Firebase

در پارامترهای زبانه را انتخاب کنید "ساعت" آیکون نمایش داده شده در بالا سمت راست. این باز می شود تاریخ تغییر صفحه لیست تمام نسخه های قالب ذخیره شده در یک منو لیست در سمت راست.

جزئیات نمایش داده شده برای هر نسخه ذخیره شده شامل اطلاعاتی در مورد این است که آیا تغییرات از کنسول ، با REST API ، از بازگشت ، یا تغییرات افزایشی ناشی از ذخیره اجباری الگو بوده است.

Firebase CLI

firebase remoteconfig:versions:list

استفاده از --limit گزینه ای برای محدود کردن تعداد نسخه های در حال بازگشت. "0" را برای واکشی همه نسخه ها عبور دهید.

لیست الگوها شامل فراداده برای همه نسخه های ذخیره شده ، از جمله زمان بروزرسانی ، کاربر ایجاد کننده ، و اینکه آیا از طریق کنسول یا REST API ساخته شده است ، می باشد. در اینجا نمونه ای از عنصر نسخه آمده است:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

نسخه خاصی از قالب Remote Config را بازیابی کنید

می توانید هر نسخه ذخیره شده خاص قالب Remote Config را بازیابی کنید. مثلا:

Node.js

رمز عبور getTemplate() بدون هیچ گونه استدلال برای بازیابی آخرین نسخه از قالب، و یا برای بازیابی یک نسخه خاص، استفاده از getTemplateAtVersion() .

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });

جاوا

Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get();
// See the ETag of the fetched template.
System.out.println("Successfully fetched the template with ETag: " + template.getETag());

باقی مانده

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6</pre>

پارامتر URL ?version_number تنها برای معتبر است GET عملیات؛ نمی توانید از آن برای تعیین شماره نسخه برای به روز رسانی استفاده کنید. یک درخواست GET مشابه بدون ?version_number پارامتر قالب در حال حاضر فعال را بازیابی کنید.

کنسول Firebase

به طور پیش فرض، قسمت جزییات در تغییر تاریخ برگه قالب فعلی فعال. برای مشاهده جزئیات نسخه دیگری در لیست ، آن را از منوی سمت راست انتخاب کنید.

شما می توانید یک تفاوت دقیق از نسخه در حال حاضر انتخاب شده و هر نسخه ذخیره شده دیگر با پرواز بر فراز منوی زمینه برای هر نسخه غیر انتخاب و انتخاب با نسخه انتخاب مقایسه را مشاهده کنید.

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

در صورت تمایل، شما می توانید خروجی را به یک فایل مشخص با ارسال -o, FILENAME .

به نسخه ذخیره شده خاص قالب Remote Config برگردید

می توانید به هر نسخه ذخیره شده قالب برگردید. مثلا:

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

جاوا

try {
  Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get();
  System.out.println("Successfully rolled back to template version: " + versionNumber);
  System.out.println("New ETag: " + template.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Error trying to rollback template.");
    System.out.println(rcError.getMessage());
  }
}

باقی مانده

به عقب به یک قالب پیکربندی از راه دور ذخیره می شود، صدور HTTP POST با روش های سفارشی :rollback و در متن درخواست، نسخه خاص اعمال می شود. مثلا:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'</pre>

پاسخ شامل محتویات الگوی ذخیره شده فعلی ، با فراداده نسخه جدید آن است.

کنسول Firebase

برای نسخه های قالب قبلی واجد شرایط برای عقبگرد، دکمه گزینه به رول به آن نسخه است که در بالا و سمت راست نمایش داده تاریخ تغییر صفحه. کلیک کنید و این تنها اگر شما مطمئن هستید که به عقب به آن نسخه می خواهید و استفاده آن ارزش بلافاصله برای تمام برنامه ها و کاربران تایید.

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

توجه داشته باشید که این عملیات بازگشت نسخه موثری را ایجاد می کند. به عنوان مثال ، بازگشت مجدد از نسخه 10 به نسخه 6 به طور موثری یک نسخه جدید از نسخه 6 ایجاد می کند و تنها با این تفاوت که نسخه اصلی آن 11 است. نسخه اصلی 6 هنوز ذخیره می شود ، با این فرض که به پایان نرسیده است و نسخه 11 به الگوی فعال تبدیل می شود.