Remote Config'i programlı olarak değiştirin

Bu belgede , Remote Config şablonu olarak bilinen JSON biçimli parametreler ve koşullar kümesini programlı olarak nasıl okuyabileceğiniz ve değiştirebileceğiniz açıklanmaktadır. Bu, istemci uygulamasının istemci kitaplığını kullanarak getirebileceği arka uçta şablon değişiklikleri yapmanıza olanak tanır.

Remote Config REST API'yi veya bu kılavuzda açıklanan Yönetici SDK'larını kullanarak, Remote Config değişikliklerini doğrudan kendi süreçlerinize entegre etmek için Firebase konsolundaki şablonu yönetmeyi atlayabilirsiniz. Örneğin Remote Config arka uç API'leriyle şunları yapabilirsiniz:

  • Uzaktan Yapılandırma güncellemelerini zamanlama . API çağrılarını bir cron işiyle birlikte kullanarak Remote Config değerlerini düzenli aralıklarla değiştirebilirsiniz.
  • Kendi özel sisteminizden Firebase Remote Config'e verimli bir şekilde geçiş yapmak için yapılandırma değerlerini toplu olarak içe aktarın .
  • Firebase için Cloud Functions ile Remote Config'i kullanarak uygulamanızdaki değerleri sunucu tarafında meydana gelen olaylara göre değiştirin. Örneğin, uygulamanızda yeni bir özelliğin tanıtımını yapmak için Remote Config'i kullanabilir ve ardından, yeterli sayıda kişinin yeni özellikle etkileşimde bulunduğunu tespit ettiğinizde bu tanıtımı otomatik olarak kapatabilirsiniz.

    Remote Config arka ucunun özel araçlar ve sunucularla etkileşimini gösteren diyagram

Bu kılavuzun aşağıdaki bölümlerinde Remote Config arka uç API'leriyle yapabileceğiniz işlemler açıklanmaktadır. Bu görevleri REST API aracılığıyla gerçekleştiren bazı kodları incelemek için şu örnek uygulamalardan birine bakın:

Firebase Admin SDK'yı kullanarak Remote Config'i değiştirin

Yönetici SDK'sı, Firebase ile ayrıcalıklı ortamlardan etkileşim kurmanıza olanak tanıyan bir dizi sunucu kitaplığıdır. Admin SDK, Remote Config güncellemelerini gerçekleştirmenin yanı sıra, Firebase kimlik doğrulama belirteçlerinin oluşturulmasına ve doğrulanmasına, Gerçek Zamanlı Veritabanından okuma ve yazmaya vb. olanak sağlar. Yönetici SDK'sı önkoşulları ve kurulumu hakkında daha fazla bilgi edinmek için Firebase Yönetici SDK'sını sunucunuza ekleme konusuna bakın.

Tipik bir Uzaktan Yapılandırma akışında geçerli şablonu alabilir, bazı parametreleri veya parametre gruplarını ve koşullarını değiştirebilir, şablonu doğrulayabilir ve ardından yayınlayabilirsiniz. Bu API çağrılarını yapmadan önce SDK'dan gelen istekleri yetkilendirmeniz gerekir.

SDK'yı başlatın ve API isteklerini yetkilendirin

Yönetici SDK'sını parametre olmadan başlattığınızda SDK, Google Uygulaması Varsayılan Kimlik Bilgilerini kullanır ve FIREBASE_CONFIG ortam değişkenindeki seçenekleri okur. FIREBASE_CONFIG değişkeninin içeriği { ile başlıyorsa, bir JSON nesnesi olarak ayrıştırılacaktır. Aksi takdirde SDK, dizenin seçenekleri içeren bir JSON dosyasının adı olduğunu varsayar.

Örneğin:

Node.js

const admin = require('firebase-admin');
admin.initializeApp();

Java

FileInputStream serviceAccount = new FileInputStream("service-account.json");
FirebaseOptions options = FirebaseOptions.builder()
        .setCredentials(GoogleCredentials.fromStream(serviceAccount))
        .build();
FirebaseApp.initializeApp(options);

Geçerli Uzaktan Yapılandırma Şablonunu edinin

Remote Config şablonlarıyla çalışırken, bunların sürümlendirildiğini ve her sürümün, oluşturulma zamanından bir güncellemeyle değiştirdiğiniz ana kadar sınırlı bir kullanım ömrüne sahip olduğunu unutmayın: Toplam 300 kayıtlı sürüm sınırıyla 90 gün. Daha fazla bilgi için Şablonlar ve Sürüm Oluşturma konusuna bakın.

Remote Config şablonunun geçerli etkin sürümünü JSON biçiminde almak için arka uç API'lerini kullanabilirsiniz.

Bir A/B Testi denemesinde özel olarak varyantlar olarak oluşturulan parametreler ve parametre değerleri, dışa aktarılan şablonlara dahil edilmez.

Şablonu almak için:

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

Uzaktan Yapılandırma parametrelerini değiştirin

Remote Config parametrelerini ve parametre gruplarını programlı olarak değiştirebilir ve ekleyebilirsiniz. Örneğin, "new_menu" adlı mevcut bir parametre grubuna, sezonluk bilgilerin görüntülenmesini kontrol etmek için bir parametre ekleyebilirsiniz:

Node.js

function addParameterToGroup(template) {
  template.parameterGroups['new_menu'].parameters['spring_season'] = {
    defaultValue: {
      useInAppDefault: true
    },
    description: 'spring season menu visibility.',
  };
}

Java

template.getParameterGroups().get("new_menu").getParameters()
        .put("spring_season", new Parameter()
                .setDefaultValue(ParameterValue.inAppDefault())
                .setDescription("spring season menu visibility.")
        );

API, yeni parametreler ve parametre grupları oluşturmanıza veya varsayılan değerleri, koşullu değerleri ve açıklamaları değiştirmenize olanak tanır. Her durumda, değişiklik yaptıktan sonra şablonu açıkça yayınlamanız gerekir.

Remote Config koşullarını değiştirin

Remote Config koşullarını ve koşullu değerleri programlı olarak değiştirebilir ve ekleyebilirsiniz. Örneğin yeni bir koşul eklemek için:

Node.js

function addNewCondition(template) {
  template.conditions.push({
    name: 'android_en',
    expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']',
    tagColor: 'BLUE',
  });
}

Java

template.getConditions().add(new Condition("android_en",
        "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));

Her durumda, değişiklik yaptıktan sonra şablonu açıkça yayınlamanız gerekir.

Remote Config arka uç API'leri, uygulamanızın davranışını ve görünümünü değiştirmek için kullanabileceğiniz çeşitli koşullar ve karşılaştırma işleçleri sağlar. Koşullar ve bu koşullar için desteklenen işleçler hakkında daha fazla bilgi edinmek için koşullu ifade başvurusuna bakın.

Remote Config şablonunu doğrulayın

İsteğe bağlı olarak güncellemelerinizi yayınlamadan önce gösterildiği gibi doğrulayabilirsiniz:

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

Bu doğrulama işlemi, parametreler ve koşullar için yinelenen anahtarlar, geçersiz koşul adları veya var olmayan koşullar veya yanlış biçimlendirilmiş etag'lar gibi hataları kontrol eder. Örneğin, izin verilen sayıdan (2000) fazla anahtar içeren bir istek, Param count too large hata mesajını döndürür.

Remote Config şablonunu yayımlayın

Bir şablonu alıp istediğiniz güncellemelerle revize ettikten sonra yayınlayabilirsiniz. Bu bölümde açıklandığı gibi bir şablonun yayınlanması, mevcut yapılandırma şablonunun tamamını güncellenen dosyayla değiştirir ve yeni etkin şablona, ​​değiştirdiği şablondan bir numara daha büyük bir sürüm numarası atanır.

Gerekirse önceki sürüme geri dönmek için REST API'yi kullanabilirsiniz. Bir güncellemede hata riskini azaltmak için yayınlamadan önce doğrulama yapabilirsiniz.

Remote Config kişiselleştirmeleri ve koşulları indirilen şablonlara dahil olduğundan, farklı bir projede yayınlamaya çalışırken aşağıdaki sınırlamaların farkında olmak önemlidir:

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

    Örneğin, projenizde kişiselleştirmeleri etkinleştirdiyseniz ve bir şablonu indirip düzenlerseniz, bunu aynı projede yayınlayabilirsiniz ancak şablondan kişiselleştirmeleri silmediğiniz sürece bunu farklı bir projede yayınlayamazsınız.

  • Koşullar projeden projeye aktarılabilir ancak belirli koşullu değerlerin (uygulama kimlikleri veya hedef kitleler gibi) yayınlamadan önce hedef projede mevcut olması gerektiğini unutmayın.

    Örneğin, iOS platform değerini belirten bir koşulu kullanan bir Remote Config parametreniz varsa platform değerleri her proje için aynı olduğundan şablon başka bir projeye yayınlanabilir. Ancak hedef projede bulunmayan belirli bir uygulama kimliğine veya kullanıcı kitlesine dayanan bir koşul içeriyorsa doğrulama başarısız olur.

  • Yayınlamayı planladığınız şablon Google Analytics'e dayalı koşullar içeriyorsa, hedef projede Analytics'in etkinleştirilmesi gerekir.

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 API'yi kullanarak Remote Config'i değiştirin

Bu bölümde https://firebaseremoteconfig.googleapis.com adresindeki Remote Config REST API'nin ana yetenekleri açıklanmaktadır. Tüm ayrıntılar için API referansına bakın.

API isteklerini doğrulamak ve yetkilendirmek için bir erişim belirteci alın

Firebase projeleri, uygulama sunucunuzdan veya güvenilir ortamınızdan Firebase sunucu API'lerini çağırmak için kullanabileceğiniz Google hizmet hesaplarını destekler. Yerel olarak kod geliştiriyorsanız veya uygulamanızı şirket içinde dağıtıyorsanız, sunucu isteklerini yetkilendirmek için bu hizmet hesabı aracılığıyla elde edilen kimlik bilgilerini kullanabilirsiniz.

Bir hizmet hesabının kimliğini doğrulamak ve Firebase hizmetlerine erişmesine izin vermek için JSON biçiminde bir özel anahtar dosyası oluşturmanız gerekir.

Hizmet hesabınız için özel bir anahtar dosyası oluşturmak için:

  1. Firebase konsolunda Ayarlar > Hizmet Hesapları'nı açın.

  2. Yeni Özel Anahtar Oluştur'u tıklayın ve ardından Anahtar Oluştur'u tıklayarak onaylayın.

  3. Anahtarı içeren JSON dosyasını güvenli bir şekilde saklayın.

Bir hizmet hesabı aracılığıyla yetkilendirme yaparken, uygulamanıza kimlik bilgileri sağlamak için iki seçeneğiniz vardır. GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini ayarlayabilir veya koddaki hizmet hesabı anahtarının yolunu açıkça iletebilirsiniz. İlk seçenek daha güvenlidir ve şiddetle tavsiye edilir.

Ortam değişkenini ayarlamak için:

GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini, hizmet hesabı anahtarınızı içeren JSON dosyasının dosya yoluna ayarlayın. Bu değişken yalnızca mevcut kabuk oturumunuz için geçerlidir; dolayısıyla yeni bir oturum açarsanız değişkeni yeniden ayarlayın.

Linux veya macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

pencereler

PowerShell'le:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

Yukarıdaki adımları tamamladıktan sonra, Uygulama Varsayılan Kimlik Bilgileri (ADC), kimlik bilgilerinizi dolaylı olarak belirleyebilir ve Google dışı ortamlarda test yaparken veya çalıştırırken hizmet hesabı kimlik bilgilerini kullanmanıza olanak tanır.

Kısa ömürlü bir OAuth 2.0 erişim jetonu almak için Firebase kimlik bilgilerinizi Google Auth Kitaplığı ile birlikte tercih ettiğiniz dil için kullanın:

node.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

Bu örnekte, Google API istemci kitaplığı, isteğin kimliğini bir JSON web belirteci veya JWT ile doğrular. Daha fazla bilgi için bkz. JSON web belirteçleri .

Python

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Java

public static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

Erişim belirtecinizin süresi dolduktan sonra, güncellenmiş erişim belirtecini almak için belirteç yenileme yöntemi otomatik olarak çağrılır.

Remote Config'e erişim yetkisi vermek için https://www.googleapis.com/auth/firebase.remoteconfig kapsamını isteyin.

Remote Config şablonunu değiştirin

Remote Config şablonlarıyla çalışırken, bunların sürümlendirildiğini ve her sürümün, oluşturulduğu andan güncellemeyle değiştirdiğiniz ana kadar sınırlı bir kullanım ömrüne sahip olduğunu unutmayın: Toplam 300 kayıtlı sürüm sınırıyla 90 gün. Daha fazla bilgi için Şablonlar ve Sürüm Oluşturma konusuna bakın.

Geçerli Uzaktan Yapılandırma Şablonunu edinin

Remote Config şablonunun geçerli etkin sürümünü JSON biçiminde almak için arka uç API'lerini kullanabilirsiniz.

Bir A/B Testi denemesinde özel olarak varyantlar olarak oluşturulan parametreler ve parametre değerleri, dışa aktarılan şablonlara dahil edilmez.

Aşağıdaki komutları kullanın:

kıvrılma

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 ve başlıkları (Etag dahil) ayrı bir dosyaya çıkarır.

Ham HTTP isteği

Host: firebaseremoteconfig.googleapis.com

GET /v1/projects/my-project-id/remoteConfig HTTP/1.1
Authorization: Bearer token
Accept-Encoding: gzip

Bu API çağrısı, sonraki istek için kullandığınız ETag'i içeren ayrı bir başlıkla birlikte aşağıdaki JSON'u döndürür.

Remote Config şablonunu doğrulayın

İsteğe bağlı olarak güncellemelerinizi yayınlamadan önce doğrulayabilirsiniz. Yayınlama isteğinize ?validate_only=true URL parametresini ekleyerek şablon güncellemelerini doğrulayın. Yanıttaki durum kodu 200 ve -0 son ekine sahip güncellenmiş bir etag, güncellemenizin başarıyla doğrulandığı anlamına gelir. 200 dışındaki herhangi bir yanıt, JSON verilerinin yayınlamadan önce düzeltmeniz gereken hatalar içerdiğini gösterir.

Remote Config şablonunu güncelleyin

Bir şablon alıp JSON içeriğini istediğiniz güncellemelerle revize ettikten sonra yayınlayabilirsiniz. Bu bölümde açıklandığı gibi bir şablonun yayınlanması, mevcut yapılandırma şablonunun tamamını güncellenen dosyayla değiştirir ve yeni etkin şablona, ​​değiştirdiği şablondan bir numara daha büyük bir sürüm numarası atanır.

Gerekirse önceki sürüme geri dönmek için REST API'yi kullanabilirsiniz. Bir güncellemede hata riskini azaltmak için yayınlamadan önce doğrulama yapabilirsiniz.

Remote Config kişiselleştirmeleri ve koşulları indirilen şablonlara dahil olduğundan, farklı bir projede yayınlamaya çalışırken aşağıdaki sınırlamaların farkında olmak önemlidir:

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

    Örneğin, projenizde kişiselleştirmeleri etkinleştirdiyseniz ve bir şablonu indirip düzenlerseniz, bunu aynı projede yayınlayabilirsiniz ancak şablondan kişiselleştirmeleri silmediğiniz sürece bunu farklı bir projede yayınlayamazsınız.

  • Koşullar projeden projeye aktarılabilir ancak belirli koşullu değerlerin (uygulama kimlikleri veya hedef kitleler gibi) yayınlamadan önce hedef projede mevcut olması gerektiğini unutmayın.

    Örneğin, iOS platform değerini belirten bir koşulu kullanan bir Remote Config parametreniz varsa platform değerleri her proje için aynı olduğundan şablon başka bir projeye yayınlanabilir. Ancak hedef projede bulunmayan belirli bir uygulama kimliğine veya kullanıcı kitlesine dayanan bir koşul içeriyorsa doğrulama başarısız olur.

  • Yayınlamayı planladığınız şablon Google Analytics'e dayalı koşullar içeriyorsa, hedef projede Analytics'in etkinleştirilmesi gerekir.

cURL

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 "@" karakterini ve ardından dosya adını kullanarak içeriği belirleyebilirsiniz.

Ham HTTP isteği

Host: firebaseremoteconfig.googleapis.com
PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1
Content-Length: size
Content-Type: application/json; UTF8
Authorization: Bearer token
If-Match: expected ETag
Accept-Encoding: gzip
JSON_HERE

Bu bir yazma isteği olduğundan ETag bu komutla değiştirilir ve bir sonraki PUT komutunun yanıt başlıklarında güncellenmiş bir ETag sağlanır.

Remote Config koşullarını değiştirin

Remote Config koşullarını ve koşullu değerleri programlı olarak değiştirebilirsiniz. REST API ile, şablonu yayınlamadan önce koşulları değiştirmek için şablonu doğrudan düzenlemeniz gerekir.

{
  "conditions": [{
    "name": "android_english",
    "expression": "device.os == 'android' && device.country in ['us', 'uk']",
    "tagColor": "BLUE"
  }, {
    "name": "tenPercent",
    "expression": "percent <= 10",
    "tagColor": "BROWN"
  }],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "tenPercent": {
          "value": "Welcome to this new sample app"
        }
      },
      "description": "The sample app's welcome message"
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      },
      "conditionalValues": {
        "android_english": {
          "value": "true"
        }
      },
      "description": "Whether the welcome message should be displayed in all capital letters."
    }
  }
}

Yukarıdaki değişiklikler ilk olarak bir dizi koşulu tanımlar ve ardından her parametre için varsayılan değerleri ve koşula dayalı parametre ( koşullu değerler ) değerlerini tanımlar. Ayrıca her öğe için isteğe bağlı bir açıklama da ekler; kod yorumları gibi bunlar da geliştiricinin kullanımına yöneliktir ve uygulamada görüntülenmez. Sürüm kontrolü amacıyla bir ETag da sağlanmıştır.

Remote Config arka uç API'leri, uygulamanızın davranışını ve görünümünü değiştirmek için kullanabileceğiniz çeşitli koşullar ve karşılaştırma işleçleri sağlar. Koşullar ve bu koşullar için desteklenen işleçler hakkında daha fazla bilgi edinmek için koşullu ifade başvurusuna bakın.

HTTP Hata kodları

Durum kodu Anlam
200 Başarıyla güncellendi
400 Bir doğrulama hatası oluştu. Örneğin, izin verilen anahtar sayısından (2000) daha fazlasını içeren bir istek, Param count too large hata mesajıyla birlikte 400 (Kötü İstek) değerini döndürür. Ayrıca bu HTTPS Durum Kodu şu iki durumda ortaya çıkabilir:
  • En son ETag değerini aldığınızdan bu yana değerler ve koşullar kümesi güncellendiğinden sürüm uyuşmazlığı hatası oluştu. Bu sorunu çözmek için, yeni bir şablon ve ETag değeri almak, şablonu güncellemek ve ardından bu şablonu ve yeni ETag değerini kullanarak göndermek için bir GET komutu kullanmalısınız.
  • Bir If-Match başlığı belirtilmeden bir PUT komutu (Uzak Yapılandırma şablonunu Güncelle isteği) yapıldı.
401 Yetkilendirme hatası oluştu (erişim belirteci sağlanmadı veya Firebase Remote Config REST API, Cloud Developer Console'daki projenize eklenmedi)
403 Bir kimlik doğrulama hatası oluştu (yanlış erişim belirteci sağlandı)
500 Dahili bir hata oluştu. Bu hata oluşursa Firebase destek bildirimi gönderin

200 durum kodu, Remote Config şablonunun (projeye ilişkin parametreler, değerler ve koşullar) güncellendiği ve artık bu projeyi kullanan uygulamalar tarafından kullanılabildiği anlamına gelir. Diğer durum kodları, daha önce var olan Remote Config şablonunun hâlâ geçerli olduğunu gösterir.

Şablonunuza yönelik güncellemeleri gönderdikten sonra, değişikliklerinizin beklendiği gibi göründüğünü doğrulamak için Firebase konsoluna gidin. Bu çok önemlidir çünkü koşulların sırası, nasıl değerlendirileceklerini etkiler ( true değerlendiren ilk koşul etkili olur).

ETag kullanımı ve zorunlu güncellemeler

Remote Config REST API, yarış koşullarını ve kaynaklarda çakışan güncellemeleri önlemek için bir varlık etiketi (ETag) kullanır. ETag'ler hakkında daha fazla bilgi edinmek için bkz. ETag - HTTP .

REST API için Google, en son GET komutu tarafından sağlanan ETag'ı önbelleğe almanızı ve PUT komutlarını verirken If-Match istek başlığında bu ETag değerini kullanmanızı önerir. PUT komutunuz bir HTTPS Durum Kodu 409 ile sonuçlanırsa, bir sonraki PUT komutunuzla kullanmak üzere yeni bir ETag ve şablon edinmek için yeni bir GET komutu vermelisiniz.

Remote Config şablonunu aşağıdaki şekilde güncellenmeye zorlayarak ETag'ı ve sağladığı korumayı atlatabilirsiniz: If-Match: * Ancak bu yaklaşım, Remote Config'inizdeki güncellemelerin kaybolmasına neden olma riski taşıdığı için önerilmez. birden fazla istemci Remote Config şablonunu güncelliyorsa şablon. Bu tür bir çakışma, API'yi kullanan birden fazla istemcide veya API istemcileri ile Firebase konsolu kullanıcılarından gelen çakışan güncellemelerde ortaya çıkabilir.

Remote Config şablonu sürümlerini yönetme konusunda rehberlik için bkz. Remote Config şablonları ve sürüm oluşturma .