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 şablonu 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ümlü bir Remote Config şablonu oluşturur ve önceki şablonu, gerektiğinde geri alabileceğiniz veya geri dönebileceğiniz bir sürüm olarak depolar. 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
Remote Config şablonunun depolanan tüm sürümlerinin listesini alabilirsiniz. Bunun için:
Firebase konsolu
Parametreler sekmesinde, "saat"i seçin simgesini tıklayın. Bu işlem, 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.
Her bir depolanan sürüm için gösterilen ayrıntılar, değişikliklerin Console'dan mı, REST API'den mi, geri alma işleminden mi yoksa şablonun zorunlu olarak kaydedilmesinden mi kaynaklandığına dair bilgileri içerir.
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, güncellemenin zamanı, güncellemeyi yapan kullanıcı ve güncellemenin nasıl yapıldığı dahil olmak üzere depolanan tüm sürümlerin meta verilerini içerir. Sürüm öğesine örnek:
```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
Remote Config şablonunun depolanan belirli bir sürümünü alabilirsiniz. Depolanan bir şablonu almak için sürüm:
Firebase konsolu
Değişiklik geçmişi sekmesindeki ayrıntılar bölmesinde varsayılan olarak mevcut etkin şablon gösterilir. 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 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. Güncellemeler için sürüm numaralarını belirtmek amacıyla kullanılamaz. 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 konsol
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. Süresi dolmadığı varsayılarak orijinal 6. sürüm depolanmaya devam eder ve 11. sürüm etkin şablon olur.
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, tamamen test edilmiş bir şablonu, hazırlık projenizden indirip üretim projenizde yayınlayarak hazırlık ortamınızdan üretim ortamınıza tanıtabilirsiniz.
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 şablonlarını 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 indirme
Etkin Remote Config şablonunu JSON biçiminde indirmek için aşağıdakileri kullanın:
Firebase konsol
- Remote Config Parametreler veya Koşullar sekmesinde Menü'yü açın ve Mevcut 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 işleminde, parametreler ve koşullar için yinelenen anahtarlar, geçersiz koşul adları veya var olmayan koşullar ya da yanlış biçimlendirilmiş ETags gibi hatalar kontrol edilir. Ö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ınlama
Ş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 ve doğrulama başarılı olursa yapılandırmanızı uygulamalarınızda ve kullanıcılarınızda hemen kullanılabilir hale getirmek için Yayınla'yı tıklayabilirsiniz.
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ı indirilen şablonlara dahil edilir. Bu nedenle, farklı bir projede yayınlamaya çalışırken aşağıdaki sınırlamaları göz önünde bulundurmanız önemlidir:
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 parametreleri için istemci tarafı uygulama varsayılan değerlerini yapılandırmanız gerekir. 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, bu varsayılan değerleri uygulamanızda manuel olarak ayarlayabilir veya etkin Remote Config şablonunda tüm parametrelerin anahtar/değer çiftlerini ve varsayılan değerlerini yalnızca içeren dosyaları indirerek bu süreci kolaylaştırabilirsiniz. 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 konsol
- 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 ayarlama