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


Remote Config şablonları, JSON biçiminde kümelerdir parametre ve koşulları tanımlayın. Siz Uygulamanızın değer getirdiği istemci şablonları oluşturabilir ve server şablonlarını kullanarak ayarlayın.

. Bu bölümde müşteri şablonları açıklanmaktadır. Sunucuya özgü bilgiler, şablonları görmek için Sunucu şablonları.

Şablonu, Firebase konsolunu kullanarak değiştirir ve yönetirsiniz. Bu konsolda şablonun içeriğinin grafik biçiminde . Parameters (Parametreler) ve Koşullar sekmeleri.

Ayrıca şunu da kullanabilirsiniz: Remote Config REST API ve Yönetici SDK'sı veya Firebase CLI kullanarak şablonu oluşturabilirsiniz.

Aşağıda örnek bir istemci şablonu dosyası 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"
        }
      }

Firebase konsoluyla aşağıdaki sürüm yönetimi görevlerini gerçekleştirebilirsiniz:

  • Depolanan tüm şablon sürümlerini listele
  • Belirli bir sürümü alma
  • Belirli bir istemci sürümüne geri döndür
  • Remote Config şablonlarını, geçmiş sayfa

Ayrıca şablonları kullanarak şablonları listeleyebilir, şablonları alabilir ve Firebase CLI ve Remote Config arka uç API'leri.

Şablon türü başına toplam 300 ömür boyu depolanan sürüm sınırı vardır (300 istemci şablonu ve 300 sunucu şablonu) içeren sürüm numaraları. 300'den fazla içerik yayınlıyorsanız proje süresi boyunca şablon türü başına şablon sürümü sayısı, en eski sürümler silinir ve en fazla 300 sürümü korunarak işleyeceğiz.

Parametreleri her güncellediğinizde, Remote Config bir yeni sürüme sahip Remote Config şablonunun ve önceki şablonun şu şekilde depolanır: Gerektiğinde alabileceğiniz veya geri alabileceğiniz bir sürüme sahip olursunuz. Sürüm numaraları Remote Config tarafından depolanan ilk değerden itibaren sırayla artırılır. Tüm şablonlarda, gösterildiği gibi bu konuyla ilgili meta verileri içeren bir version alanı bulunur belirli bir sürüm.

Gerektiğinde Remote Config şablonlarını şuradan silebilirsiniz: Değişiklik geçmişi sayfa Remote Config konsolu.

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

Bu bölümde, Remote Config'inizin sürümlerinin nasıl yönetileceği açıklanmaktadır. tıklayın.

Oluşturma hakkında daha fazla bilgi için şablonları programatik olarak değiştirebilir ve kaydedebilirsiniz. Remote Config'i programatik olarak değiştirme

Remote Config şablonunun depolanan tüm sürümlerini listeleme

Araç Çubuğu’nun Remote Config şablonunun depolanan tüm sürümleri için geçerlidir. Bunun için:

Firebase konsolu

Parametreler sekmesinde, "saat"i seçin simgesini tıklayın. Bu, Değişiklik geçmişi sağ taraftaki bir liste menüsünde, depolanan tüm şablon sürümlerinin listelendiği sayfa.

Depolanan her sürüm için görüntülenen ayrıntılarda REST API ile birlikte geri alma işlemiyle, Play Console'da ve veya şablonun zorunlu olarak kaydedilmesinden kaynaklanan artımlı değişiklikler olabilir.

Firebase CLI

firebase remoteconfig:versions:list

Döndürülen sürüm sayısını sınırlandırmak için --limit seçeneğini kullanın. Kart '0' komutunu çalıştırın.

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

REST

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

Şablon listesi, şunlar dahil olmak üzere depolanan tüm sürümlerin meta verilerini içerir: güncelleme zamanı, güncellemeyi yapan kullanıcı ve nasıl yapıldığı. Burada örneği:

```json
{
  "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ü alma

Belirli Google ürünlerinde saklanan Remote Config şablonunun sürümü. Depolanan bir şablonu almak için sürüm:

Firebase konsolu

Varsayılan olarak, Değişiklik geçmişi sekmesi geçerli etkin şablonu gösterir. Görüntüleme ayrıntıları seçmek için sağ menüden seçim yapın.

Şu anda seçili olan sürümün ve diğer tüm sürümlerin ayrıntılı farkını sürümü için bağlam menüsünün üzerine gelerek saklanan sürümü saklayabilirsiniz. ve Seçili sürümle karşılaştır'ı seçin.

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

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

Node.js

getTemplate() bileti gerekiyor için bağımsız değişken kullanmadan, şablonun en son sürümünü veya belirli bir sürümü almak için getTemplateAtVersion() işlevini 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());

REST

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

?version_number URL parametresi yalnızca GET işlemleri için geçerlidir; bunu güncellemeler için sürüm numaralarını belirtmek amacıyla kullanamazsınız. Benzer bir ?version_number olmadan istek parametresi geçerli etkin şablonu alır.

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

Şu anda YouTube'da saklanan seçin. Bir şablonu geri çekmek için:

Firebase konsolu

Geri almaya uygun önceki şablon sürümlerinde geri dönmek için kullanabileceğiniz seçenek düğmesi, Değişiklik geçmişi sayfasını ziyaret edin. Bu işlemi yalnızca söz konusu uygulamaya geri dönmek istediğinizden eminseniz tıklayın ve onaylayın sürümünü indirmeli ve bu değerleri tüm uygulamalar ile kullanıcılar için hemen kullanabilir.

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

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

REST

Depolanan bir Remote Config şablonuna geri dönmek için şununla bir HTTP POST yayınlayın: :rollback özel yöntemi ve istek gövdesinde, tıklayı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, şu anda etkin olan depolanan şablonun içeriğini, yeni sürüm meta verileri.

Bu geri alma işleminin numaralandırılmış yeni bir sürüm var. Örneğin, sürüm 10'dan sürüm 6'ya geri dönmek sürüm 6'nın yeni bir kopyasını oluşturur. yalnızca sürüm numarasının 11 olması gerekir. Orijinal sürüm 6 süresinin dolmadığı varsayılarak sürüm 11'in ve sürüm 11'in etkin şablon haline gelir.

Remote Config şablonu silme

Firebase konsolundan Remote Config şablonlarını silebilirsiniz. Alıcı: Bir Remote Config şablonunu silin:

. 1. Remote Config'den Parametreler sayfada, tıklama Değişiklik geçmişi.
  1. Silmek istediğiniz şablona gidin ve Diğer'i tıklayın, ardından seçin Sil.

  2. Silme işlemini onaylamanız istendiğinde Sil'i tıklayın.

Remote Config şablonlarını indirin ve yayınlayın

Remote Config şablonlarını indirip yayınlayın ve kaynak denetimi ve derleme sistemleri, yapılandırma güncellemelerini otomatikleştirme ve parametreleri ve değerler birden çok projede senkronize edilir.

Şu anda etkin olan Remote Config şablonunu indirebilirsiniz . programatik olarak veya . Ardından dışa aktarılmış bir JSON dosyasını açın ve bunu aynı projeye yayınlayın ya da dosyayı yeni veya nasıl oluşturulduğunu göstereceğim.

Projenizin farklı aşamalarını temsil eden birden fazla projeniz olduğunu varsayalım Geliştirme, test, hazırlık ve üretim gibi yazılım geliştirme yaşam döngüsü ortam olarak da bilinir. Bu durumda, kendi kampanyanızdan tamamen test edilmiş bir şablonu ortamınızdan indirerek üretim ortamınıza bu aşama için hazırlama ve üretim projenizde yayınlama.

Bu yöntemi kullanarak yapılandırmaları bir projeden veya yeni bir projeyi kabul edilir.

Belirli bir A/B Testi denemesi, dışa aktarılan şablonlara dahil edilmez.

Remote Config şablonlarını dışa ve içe aktarmak için:

  1. Geçerli Remote Config Config şablonunu indirin.
  2. Remote Config şablonunu doğrulayın.
  3. Remote Config şablonunu yayınlayın.

Mevcut Remote Config şablonunu indirin

Aşağıdakileri kullanarak etkin Remote Config şablonunu indirin: JSON biçimi:

Firebase konsolu

  1. Şuradan: Remote Config Parametreleri veya Koşulları sekmesinden, Menü'yü açın ve Geçerli yapılandırma dosyasını indir'i seçin.
  2. İstendiğinde Yapılandırma dosyasını indir'i tıklayın ve dosyayı kaydetmek istediğinizi seçin ve Kaydet'i tıklayın.

Firebase CLI

firebase remoteconfig:get -o filename

Node.js

function getTemplate() {
  var config = admin.remoteConfig();
  config.getTemplate()
      .then(function (template) {
        console.log('ETag from server: ' + template.etag);
        var templateStr = JSON.stringify(template);
        fs.writeFileSync('config.json', templateStr);
      })
      .catch(function (err) {
        console.error('Unable to get template');
        console.error(err);
      });
}

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get();
// See the ETag of the fetched template.
System.out.println("ETag from server: " + template.getETag());

REST

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename

Bu komut, JSON yükünü bir dosyaya çıkarır ve (ETag dahil) ayrı bir headers dosyasına kopyalayın.

Remote Config şablonunu doğrulayın

. Şablon güncellemelerinizi yayınlamadan önce şunları kullanarak doğrulayabilirsiniz: Firebase Admin SDK'sı veya REST API. Şablonlar, Firebase CLI veya Firebase konsolundan yayın yapmanızı sağlar.

Şablon doğrulama sürecinde yinelenen anahtarlar gibi hataları kontrol eder. parametreler ve koşullar, geçersiz koşul adları veya var olmayan koşullar ya da ETag'ler yanlış biçimlendirilmiş. Örneğin, izin verilenden daha fazlasını içeren bir istek anahtar sayısı (2000) Param count too large hata mesajını döndürür.

Node.js

function validateTemplate(template) {
  admin.remoteConfig().validateTemplate(template)
      .then(function (validatedTemplate) {
        // The template is valid and safe to use.
        console.log('Template was valid and safe to use');
      })
      .catch(function (err) {
        console.error('Template is invalid and cannot be published');
        console.error(err);
      });
}

Java

try {
  Template validatedTemplate = FirebaseRemoteConfig.getInstance()
          .validateTemplateAsync(template).get();
  System.out.println("Template was valid and safe to use");
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Template is invalid and cannot be published");
    System.out.println(rcError.getMessage());
  }
}

REST

Şablon güncellemelerini ?validate_only=true URL parametresini ekleyerek doğrulayın ekleme talebi:

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?validate_only=true -d @filename

Şablonunuz başarıyla doğrulandıysa curl komutu, Gönderdiğiniz JSON şablonu ve kaydedilen headers dosyasında HTTP/2 durumu 200 ve -0 son ekine sahip güncellenmiş bir ETag. Eğer şablonu doğrulanmadıysa doğrulama hatasını JSON yanıtı ve headers dosyanız 200 olmayan bir yanıt içerecek (ETag olmadan).

Remote Config şablonunu yayınlayın

Şablonu indirdikten sonra JSON içeriğinde gerekli değişiklikleri yaptıktan sonra doğrulayarak bir projeye yayınlayabilirsiniz.

Bir şablon yayınladığınızda, mevcut yapılandırma şablonunun tamamını bir birim ekler ve şablon sürümünü bir birim artırır. Çünkü bir bütün JSON dosyasından bir parametreyi silerseniz ve parametre, sunucudan silinir ve artık kullanılamaz. sunmak zorundasınız.

Yayınlama işleminden sonra, parametrelerde ve değerlerde yapılan değişiklikler anında kullanılabilir hale gelir ve kullanıcılarınıza sunabilirsiniz. Gerekirse, önceki sürüme geri dönme başlıklı makaleye bakın.

Şablonunuzu yayınlamak için aşağıdaki komutları kullanın:

Firebase konsolu

  1. Şuradan: Remote Config Parametreleri veya Koşulları sekmesinden Menü'yü açın, Dosyadan yayınla'yı seçin.
  2. İstendiğinde Göz at'ı tıklayın, Yayınlamak istediğiniz Remote Config dosyasını seçin ve Seç'i tıklayın.
  3. Dosya doğrulanır. Başarılı olursa Yayınla'yı tıklayarak yapılandırmayı hemen kullanabilirsiniz. en iyi uygulamaları paylaşacağız.

Node.js

function publishTemplate() {
  var config = admin.remoteConfig();
  var template = config.createTemplateFromJSON(
      fs.readFileSync('config.json', 'UTF8'));
  config.publishTemplate(template)
      .then(function (updatedTemplate) {
        console.log('Template has been published');
        console.log('ETag from server: ' + updatedTemplate.etag);
      })
      .catch(function (err) {
        console.error('Unable to publish template.');
        console.error(err);
      });
}

Java

try {
  Template publishedTemplate = FirebaseRemoteConfig.getInstance()
          .publishTemplateAsync(template).get();
  System.out.println("Template has been published");
  // See the ETag of the published template.
  System.out.println("ETag from server: " + publishedTemplate.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Unable to publish template.");
    System.out.println(rcError.getMessage());
  }
}

REST

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename

Bu curl komutu için "@" işaretini kullanarak içeriği belirtebilirsiniz. karakteri ve ardından dosya adı yazın.

Remote Config kişiselleştirmeleri ve koşulları, indirilmiş şablonlardan yararlanabilirsiniz. Bu nedenle, kullanabileceğiniz bazı kısıtlamalar vardır:

  • Kişiselleştirmeler, bir projeden projeye aktarılamaz.

    Örneğin, projenizde kişiselleştirmeler etkinse ve bir şablon indirip düzenledikten sonra, oluşturduğunuz ama projeyi silmediğiniz sürece farklı bir projede yayınlayamazsınız bazı kişiselleştirmeler var.

  • Koşullar projeden projeye aktarılabilir ancak belirli koşullu değerler (ör. uygulama kimlikleri veya kitleler) önce hedef projeye odaklanacağız.

    Örneğin, koşul alan bir Remote Config parametreniz varsa iOS bir platform değeri belirtirse şablon, çünkü platform değerleri tüm projeler için aynıdır. Ancak belirli bir uygulama kimliğine veya kullanıcıya dayalı bir koşul içeriyorsa hedef projede yoksa doğrulama başarısız olur.

  • Yayınlamayı planladığınız şablon, Google Analytics'i kullanıyorsanız hedefte Analytics'in etkinleştirilmiş olması gerekir belirler. .

Remote Config şablon varsayılanlarını indirin

Uygulamanız her zaman internete bağlı olmayabileceğinden tüm Remote Config için istemci taraflı uygulama varsayılan değerlerini yapılandırmanız gerekir parametreleridir. Uygulama istemcisi varsayılanınızı düzenli aralıklarla senkronize etmeniz de gerekir ve Remote Config arka uç varsayılan parametre değerlerine zamanla değişebilir.

Bu bölümün sonundaki platforma özel bağlantılarda açıklandığı gibi uygulamanızda manuel olarak ayarlayabilirsiniz. Alternatif olarak, yalnızca tüm parametreler için anahtar/değer çiftlerini içeren dosyaları indirmek ve bunların etkin Remote Config şablonundaki varsayılan değerleridir. Ardından bu dosyayı projenize ekleyin ve uygulamanızı bu değerleri içe aktaracak şekilde yapılandırın.

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

Yeni herhangi bir yeni ayar yüklemeden önce Remote Config varsayılanlarını düzenli aralıklarla indirmenizi öneririz uygulamanızın ve Remote Config arka ucunun senkronize edin.

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

REST

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

Hangi dosyaya bağlı olarak, format değeri olarak XML, PLIST veya JSON değerini kullanın biçimi seçin.

Firebase konsolu

  1. Parametreler sekmesinde, Menü'yü açın ve Varsayılan değerleri indirin.
  2. İstendiğinde dosyaya karşılık gelen radyo düğmesini tıklayın. indirmek istediğiniz biçimi seçin ve ardından Dosyayı indir'i tıklayın.

Remote Config varsayılan değerlerini uygulamanız için aşağıdaki adımları uygulayın: