Remote Config şablon, JSON biçimli gruplardır 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, görüntülenen Firebase konsolunu kullanarak değiştirir ve yönetirsiniz. ş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 KSA kullanarak şablonu oluşturabilirsiniz.
Aşağıda bir sunucu şablon dosyası örneği verilmiştir:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
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 şablonunu Değiştir geçmişi sayfa
Ş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 her şablon türü için ayrı ayrı ş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,
yeni sürüm Remote Config şablonu kullanır ve önceki şablonu şu şekilde depolar:
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 sonra 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 şablonu şuradan silebilirsiniz: Değişiklik geçmişi sayfa Remote Config konsolunda gösterilir.
Remote Config şablon sürümünü yönetin
Bu bölümde, Remote Config sürümlerinin nasıl yönetileceği açıklanmaktadır. tıklayın.
Remote Config şablonunun depolanan tüm sürümlerini listele
Araç Çubuğu’nun Remote Config şablonunun depolanan tüm sürümleri. 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 KSA
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ü al
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 gelin ve saklanan sürümü seçin. ve Seçili sürümle karşılaştır'ı seçin.
Firebase KSA
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 KSA
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.
Bir Remote Config şablonunu sil
Remote Config şablonlarını Firebase konsolundan silebilirsiniz. Alıcı: bir Remote Config şablonunu silin:
. 1. Remote Config liginden Parametreler sayfada, tıklama Değişiklik geçmişi.Silmek istediğiniz şablona gidin ve
Diğer'i tıklayın, ardından seçin Sil.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ınlayarak 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 Firebase konsolundan kontrol edebilirsiniz. . 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 Testing deneme, dışa aktarılan şablonlara dahil edilmedi.
Remote Config şablonu dışa ve içe aktarmak için:
- Geçerli Remote Config Yapılandırma şablonunu indirin.
- Remote Config şablonunu doğrulayın.
- Remote Config şablonunu yayınlayın.
Mevcut Remote Config şablonunu indirin
Etkin Remote Config şablonunu indirmek için şunları kullanın: JSON biçimi:
Firebase konsolu
- Şuradan: Remote Config Parametre veya Koşullar sekmesini, Menü'yü açın ve Geçerli yapılandırma dosyasını indir'i seçin.
- İ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 KSA
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 veya REST API. Şablonlar, Firebase KSA veya Firebase konsolundan yayınlayın.Ş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 parametre 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
- Şuradan: Remote Config Parametre veya Koşullar sekmesinde, Menü'yü açın. Dosyadan yayınla'yı seçin.
- İstendiğinde Göz at'ı tıklayın, Yayınlamak istediğiniz Remote Config dosyayı, ardından Seç'i tıklayın.
- 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ştirme ve koşul dahil edildi 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 kullanan bir Remote Config parametreniz varsa
iOS
platform değerini belirten bir şablon varsa ş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, Analytics hedefte etkinleştirilmelidir belirler.
Remote Config varsayılan şablonu 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 değerlerine 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ğerleri. 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 dosyalardan ö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
- Parametreler sekmesinde, Menü'yü açın ve Varsayılan değerleri indirin.
- İ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ğerini uygulamanız için aşağıdaki adımları uygulayın:
Android için uygulama içi varsayılan parametre değerlerini ayarlama
iOS için uygulama içi varsayılan parametre değerlerini ayarlama
Web için uygulama içi varsayılan parametre değerlerini ayarlama
Unity için uygulama içi varsayılan parametre değerlerini belirleme
C++ için uygulama içi varsayılan parametre değerlerini belirleme