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. Ş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.

İş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, gösterildiği gibi, o belirli 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ü al
  • Belirli bir sürüme geri dönün

Remote Config şablonlarını yönetirken süre sonu eşiğini aklınızda bulundurun: Uygulamanız tarafından kullanılan mevcut etkin Remote Config şablonunun süresi dolmaz ; ancak, bir güncelleme ile değiştirilirse, önceki sürüm yalnızca 90 gün süreyle depolanır, ardından süresi dolar ve geri alınamaz. Ayrıca toplam 300 depolanmış sürüm sınırı vardır. Bu sınırların dışında bir şablonu saklamak veya geri almak istiyorsanız, manuel olarak kaydedin ve saklayın.

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. Şablonların programlı olarak nasıl oluşturulacağı, değiştirileceği ve kaydedileceği hakkında daha fazla ayrıntı için bkz. Remote Config'i programlı olarak değiştirme .

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İ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:listVersions

Firebase konsolu

Parametreler sekmesinde, sağ üstte görüntülenen "saat" simgesini seçin. Bu, sağdaki bir liste menüsünde saklanan 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'sinden mi, bir geri almadan mı yoksa şablonun zorunlu olarak kaydedilmesiyle artımlı değişikliklerden mi kaynaklandığı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' iletin.

Şablon listesi, güncelleme zamanı, güncellemeyi 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": "2022-05-12T02:38:54Z",
    "update_user": {
      "name": "Jane Smith",
      "email": "jane@developer.org",
      "imageUrl": "https://lh3.googleusercontent.com/a-/..."
    },
    "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

Şablonun en son sürümünü almak veya belirli bir sürümü almak için getTemplate() herhangi bir bağımsız değişken olmadan iletin, 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

URL parametresi ?version_number 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 parametresi olmadan 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 gelip Seçili sürümle karşılaştır'ı seçerek, geçerli olarak seçili olan sürüm ve saklanan diğer sürümler arasındaki ayrıntılı farkı görüntüleyebilirsiniz.

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

Depolanmış bir Remote Config şablonuna geri dönmek için, özel yöntemle :rollback ve istek gövdesinde uygulanacak belirli sürümle bir HTTP POST yayınlayın. Örneğin:

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

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 olan önceki şablon sürümleri için, Değişiklik geçmişi sayfasının sağ üst kısmında o sürüme geri dönmek için 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 numaralı sürüm oluşturduğunu unutmayın. Örneğin, sürüm 10'dan sürüm 6'ya geri dönülmesi 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.

Remote Config şablon varsayılanlarını indirin

Uygulamanız her zaman İnternet'e bağlı olmayabileceğinden, tüm Remote Config parametreleri için istemci tarafı uygulama varsayılan değerlerini yapılandırmanız gerekir. Ayrıca, zaman içinde değişebileceklerinden, uygulama istemcinizin varsayılan değerlerini ve Remote Config arka uç varsayılan parametre değerlerini periyodik olarak eşitlemelisiniz.

Bu bölümün sonundaki platforma özel bağlantılarda açıklandığı gibi, uygulamanızda bu varsayılanları manuel olarak ayarlayabilir veya tüm parametreler için yalnızca anahtar/değer çiftlerini ve bunların varsayılan değerlerini içeren dosyaları indirerek bu işlemi kolaylaştırabilirsiniz. aktif Remote Config şablonu. Ardından bu dosyayı projenize ekleyebilir ve uygulamanızı bu değerleri içe aktaracak şekilde yapılandırabilirsiniz.

Bu dosyaları Android uygulamaları için XML biçiminde, iOS uygulamaları için özellik listesi (plist) biçiminde ve web uygulamaları için JSON biçiminde indirebilirsiniz.

Uygulamanızın ve Remote Config arka ucunun senkronize durumda kalmasını sağlamak için herhangi bir yeni uygulama sürümünden önce Remote Config varsayılanlarını düzenli aralıklarla indirmenizi öneririz.

Şablon varsayılanlarını içeren bir dosyayı indirmek için:

DİNLENME

curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'

İndirmek istediğiniz dosya biçimine bağlı olarak format değeri olarak XML , PLIST veya JSON kullanın.

Firebase konsolu

  1. Parametreler sekmesinde Menüsünü açın ve Varsayılan değerleri indir öğesini seçin.
  2. İstendiğinde, indirmek istediğiniz dosya biçimine karşılık gelen radyo düğmesini ve ardından Dosyayı indir öğesini tıklayın.

Remote Config varsayılan değerlerini uygulamanıza aktarma hakkında daha fazla bilgi için bkz.