Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now

Uzaktan Yapılandırma Şablonları ve Sürüm Oluşturma

Remote Config şablonu, Firebase projeniz için oluşturduğunuz JSON biçimli parametrelerden ve koşullardan oluşan sunucu tarafı kümesidir. Şablonun içeriğini Parametreler ve Koşullar sekmelerinde grafik biçiminde görüntüleyen Firebase konsolunu kullanarak şablonu değiştirebilir ve yönetebilirsiniz. Yapılandırmanızı değiştirmek ve yönetmek için Remote Config arka uç API'lerini veya Firebase CLI'yi de kullanabilirsiniz.

Aşağıda bir şablon dosyası örneği verilmiştir:

  {
    "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 yeni sürümlü bir Remote Config şablonu oluşturur ve önceki şablonu, gerektiğinde geri alabileceğiniz veya geri alabileceğiniz bir sürüm olarak depolar. Sürüm numaraları, Remote Config tarafından depolanan başlangıç ​​değerinden sırayla artırılır. Tüm şablonlar, gösterildiği gibi, söz konusu sürümle ilgili meta verileri içeren bir version alanı içerir.

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ü geri alın
  • 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 zamanından itibaren 90 gün veya toplam 300 depolanmış sürüm sınırı. Bu sınırların dışındaki 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şturulduktan sonra 90 günden fazla süredir aktifse ve bir güncelleme ile değiştirilirse, tekrar geri alınamaz (süresinin dolması nedeniyle).

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

Bu bölümde, Remote Config şablonunuzun sürümlerini nasıl yöneteceğiniz açıklanmaktadır. 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 depolanan tüm sürümlerini listeleyin

Remote Config şablonunun depolanan 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İNLENME

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

Parametreler sekmesinde, sağ üstte görüntülenen "saat" simgesini seçin. Bu, sağdaki bir liste menüsünde depolanan tüm şablon sürümlerini listeleyen Değişiklik geçmişi sayfasını açar.

Depolanan her sürüm için görüntülenen ayrıntılar, değişikliklerin Konsoldan mı, REST API ile mi, bir geri dönüşten mi kaynaklandığına veya şablonun zorunlu kaydedilmesinden kaynaklanan artımlı değişiklikler olup olmadığına ilişkin bilgileri içerir.

Firebase CLI

firebase remoteconfig:versions:list

Döndürülen sürümlerin sayısını sınırlamak için --limit seçeneğini kullanın. Tüm sürümleri getirmek için '0'ı geçirin.

Şablonlar listesi, güncellemenin zamanı, bunu yapan kullanıcı ve konsol veya REST API aracılığıyla yapılıp yapılmadığı 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 depolanan herhangi bir özel sürümünü geri alabilirsiniz. Örneğin:

Node.js

Şablonun en son sürümünü almak için herhangi bir bağımsız değişken olmadan getTemplate() veya belirli bir sürümü almak için getTemplateAtVersion() kullanın.

// 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İNLENME

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>

?version_number URL parametresi yalnızca GET işlemleri için geçerlidir; güncellemeler için sürüm numaralarını belirtmek için kullanamazsınız. ?version_number parametresini içermeyen benzer bir alma isteği, geçerli etkin şablonu alır.

Firebase konsolu

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

Seçili olmayan herhangi bir sürüm için bağlam menüsünün üzerine gelerek ve Seçili sürümle karşılaştır'ı seçerek geçerli olarak seçili sürümün ve saklanan diğer sürümlerin ayrıntılı bir farkını görebilirsiniz .

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

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

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

Şablonun depolanan 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İNLENME

Depolanan bir Remote Config şablonuna geri dönmek için, özel yöntemle bir HTTP POST yayınlayın :rollback ve istek gövdesinde, uygulanacak belirli sürüm. Ö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 artık etkin olan depolanan şablonun içeriğini içerir.

Firebase konsolu

Geri alma için uygun olan önceki şablon sürümleri için, Değişiklik geçmişi sayfasının sağ üst köşesinde o sürüme geri dönmeye yönelik bir seçenek düğmesi görüntülenir. Bunu yalnızca o sürüme geri dönmek ve bu değerleri tüm uygulamalar ve kullanıcılar için hemen kullanmak istediğinizden eminseniz tıklayın ve onaylayın.

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

Bu geri alma işleminin etkili bir şekilde yeni bir numaralandırılmış sürüm oluşturduğuna dikkat edin. Ö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 ve orijinal sürümden yalnızca sürüm numarası 11'dir. Orijinal sürüm 6, süresinin dolmadığı varsayılarak hala saklanır ve sürüm 11, etkin şablon haline gelir.