Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Remote Config Şablonları ve Sürüm Oluşturma

Remote Config şablonu, Firebase projeniz için oluşturduğunuz sunucu tarafı JSON biçimli parametreler ve koşullar kümesidir. Değiştirebilir ve Firebase konsolunu kullanarak şablon yönetebileceğiniz grafik biçiminde görüntüler şablonun içeriğini Parametreleri ve Koşullar sekmelerin. Ayrıca kullanabilirsiniz Uzaktan Config'i arka uç API'leri veya Firebase CLI değiştirebilir ve yapılandırma yönetmek için.

İşte bir şablon dosyası örneği:

  {
    "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"
    }
  }

Parametreleri her güncellediğinizde Remote Config, sürümlü yeni bir Remote Config şablonu oluşturur ve önceki şablonu, gerektiğinde alabileceğiniz veya geri alabileceğiniz bir sürüm olarak saklar. Sürüm numaraları, Remote Config tarafından depolanan ilk değerden sırayla artırılır. Tüm şablonları içerir version bu özel sürümü hakkında meta içeren, gösterildiği gibi sahadan.

Firebase konsolu, Firebase CLI veya Remote Config arka uç API'leri ile şu sürüm yönetimi görevlerini gerçekleştirebilirsiniz:

  • Depolanan tüm şablon sürümlerini listeleyin
  • Belirli bir sürümü al
  • Belirli bir sürüme geri dönün

Remote Config şablonlarını yönetirken, sona erme eşiğini aklınızda bulundurun: oluşturma tarihinden itibaren 90 gün veya toplam 300 depolanmış sürüm sınırı. Bu sınırların dışında bir şablonu saklamak veya geri almak istiyorsanız, manuel olarak kaydedin ve saklayın. Uygulamanızda tarafından kullanılıyor mevcut aktif Uzaktan Yapılandırma şablonu aşımına uğramayacak; ancak, oluşturulma tarihinden itibaren 90 günden fazla süredir etkinse ve bir güncelleme ile değiştirilirse, tekrar geri alınamaz (süresi dolması nedeniyle).

Remote Config şablon sürümlerini yönetin

Bu bölüm, Remote Config şablonunuzun sürümlerinin nasıl yönetileceğini açıklar. Oluşturmak, değiştirmek ve programlama şablonları kaydetme konusunda daha fazla ayrıntı için bkz programlı Değiştir Uzaktan Config'i .

Remote Config şablonunun saklanan tüm sürümlerini listeleyin

Remote Config şablonunun saklanan tüm sürümlerinin bir listesini alabilirsiniz. Örneğin:

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

Java

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

DİNLENMEK

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 konsolu

In Parametreler sekmesi, "saat" ikonu sağ üst kısmında görüntülenir seçin. Bu açılır Değişiklik geçmişi sağda bir liste menüsündeki kayıtlı tüm şablon sürümlerini listeleme sayfasını.

Depolanan her sürüm için görüntülenen ayrıntılar, değişikliklerin Konsoldan mı, REST API'sinden mi, bir geri almadan mı yoksa şablonun zorunlu olarak kaydedilmesiyle oluşan artımlı değişikliklerden mi kaynaklandığına ilişkin bilgileri içerir.

Firebase CLI

firebase remoteconfig:versions:list

Kullanım --limit varyant sayısı iade edilen kısıtlama seçeneği. Tüm sürümleri almak için '0' iletin.

Şablonlar listesi, güncellemenin zamanı, bunu yapan kullanıcı ve konsol üzerinden mi yoksa REST API üzerinden mi yapıldığı da dahil olmak üzere, depolanan tüm sürümler için meta verileri içerir. İşte bir sürüm öğesi örneği:

{
  "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 şablonunun belirli bir sürümünü alın

Remote Config şablonunun saklanan herhangi bir belirli sürümünü alabilirsiniz. Örneğin:

Node.js

Geçiş getTemplate() herhangi bir argüman olmadan şablonunun son sürümünü almak için, ya da belirli bir sürümünü almak için kullanmak 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);
  });

Java

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

DİNLENMEK

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 parametresi ?version_number sadece için geçerlidir GET işlemleri; güncellemeler için sürüm numaralarını belirtmek için kullanamazsınız. Olmadan benzer bir olsun isteği ?version_number Parametresi mevcut aktif şablonu almak istiyorum.

Firebase konsolu

Varsayılan olarak, ayrıntılar bölmesinde Değişiklik geçmişi sekmesinin Geçerli etkin şablonu. Listedeki başka bir sürümün ayrıntılarını görüntülemek için sağdaki menüden seçin.

Herhangi olmayan seçilen sürümü için içerik menüsüne üzerine gelip seçilen sürümü ile karşılaştırın seçilerek seçili sürümü ve diğer depolanmış versiyonunun detaylı diff görebilirsiniz.

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

İsteğe bağlı olarak, bir belirtilen dosyaya çıktı yazabilir -o, FILENAME .

Remote Config şablonunun belirli bir depolanmış sürümüne geri dönün

Şablonun saklanan herhangi bir sürümüne geri dönebilirsiniz. Örneğin:

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

Java

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

DİNLENMEK

Saklanan Uzak Yapılandırma şablonuna rulo arkasına, özel yöntemle bir HTTP POST sorunu :rollback isteği gövdesine, belirli versiyonu uygulamak, vb. Örneğin:

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>

Yanıt, yeni sürüm meta verileriyle birlikte şu anda etkin olan saklanan şablonun içeriğini içerir.

Firebase konsolu

Geri alma için uygun bir önceki şablon sürümleri için, bu sürüme rulo arkasına bir seçenek düğmesine sağ üst kısmında görüntülenir Değişiklik geçmişi sayfası. Tıklayın ve emin bu sürüme rulo arkasına istiyoruz ve tüm uygulamalar ve kullanıcılar için hemen bu değerleri kullanmak yalnızca, bunu doğrulamaktadır.

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

Bu geri alma işleminin etkili bir şekilde yeni bir numaralı sürüm oluşturduğunu unutmayın. Örneğin, sürüm 10'dan sürüm 6'ya geri dönmek, etkin bir şekilde sürüm 6'nın yeni bir kopyasını oluşturur; orijinalden yalnızca sürüm numarasının 11 olmasıyla farklılık gösterir. Orijinal sürüm 6, sona erme süresinin dolmadığı varsayılarak hala saklanır ve sürüm 11, etkin şablon haline gelir.