Remote Config şablonları, Firebase projeniz için oluşturduğunuz JSON biçimli parametre ve koşullar gruplarıdır. Uygulamanızın değerleri getireceği istemci şablonları ve sunucu istemcilerinin değerleri getirebileceği sunucu şablonları oluşturabilirsiniz.
Bu bölümde müşteri şablonları açıklanmaktadır. Sunucuya özel şablonlar hakkında bilgi edinmek için Sunucu şablonları'nı tıklayın.Şablonun içeriği Parametreler ve Koşullar sekmeleri.
İstemci şablonunuzu değiştirmek ve yönetmek için Remote Config REST API ve Admin SDK'yı veya Firebase CLI'yı da kullanabilirsiniz.
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 şablonlarını Değişiklik geçmişi sayfasından silin
Şablon türü (300 istemci şablonu ve 300 sunucu şablonu) başına toplam 300 ömür boyu depolanan sürüm sınırı vardır. Bu sınıra, silinen şablonlar için depolanan sürüm numaraları dahildir. Bir projenin kullanım süresi boyunca şablon türü başına 300'den fazla şablon sürümü yayınlarsanız en eski sürümler silinir. Böylece, ilgili türün en fazla 300 sürümü korunur.
Parametreleri her güncellediğinizde Remote Config, sürümü yeni bir Remote Config şablonu oluşturur ve önceki şablonu gerektiğinde alıp geri alabileceğiniz bir sürüm olarak depolar. 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 söz konusu sürümle ilgili meta verileri içeren bir version
alanı bulunur.
Remote Config şablonlarını gereken şekilde Remote Config konsolundaki Değişiklik geçmişi sayfasından silebilirsiniz.
Remote Config şablon sürümlerini yönetin
Bu bölümde Remote Config şablonunuzun sürümlerini nasıl yöneteceğiniz açıklanmaktadır.
Remote Config şablonunun depolanan tüm sürümlerini listeleme
Remote Config şablonunun depolanan tüm sürümlerinin listesini alabilirsiniz. Bunun için:
Firebase konsolu
Parametreler sekmesinde, sağ üstte görüntülenen "saat" simgesini seçin. Bu işlem, saklanan tüm şablon sürümlerinin sağ tarafındaki bir liste menüsünde listelendiği 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 Console'dan mı, REST API'den mi, bir geri alma işleminden mi yoksa şablonun zorunlu olarak kaydedilmesinden kaynaklanan artımlı değişiklikler mi olduğu ile ilgili 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.
Tüm sürümleri getirmek için '0' değerini iletin.
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üncelleme zamanı, güncellemeyi yapan kullanıcı ve nasıl yapıldığı da dahil olmak üzere depolanan tüm sürümlerin meta verilerini içerir. Burada bir sürüm öğesi örneği görebilirsiniz:
```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
Remote Config şablonunun depolanmış herhangi bir sürümünü alabilirsiniz. Depolanan bir şablon sürümünü almak için:
Firebase konsolu
Varsayılan olarak, Değişiklik geçmişi sekmesindeki ayrıntı bölmesinde mevcut etkin şablon görüntülenir. Listedeki başka bir sürümün ayrıntılarını görüntülemek için sağdaki menüden sürümü seçin.
Seçili olmayan sürümler için fareyle içerik menüsünün üzerine gelip Seçilen sürümle karşılaştır'ı seçerek o anda seçili olan sürümün ve depolanmış diğer sürümlerin ayrıntılı farkını görüntüleyebilirsiniz.
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
İsteğe bağlı olarak, -o, FILENAME
kullanarak çıktıyı belirtilen bir dosyaya yazabilirsiniz.
Node.js
Şablonun en son sürümünü almak için getTemplate()
öğesini bağımsız değişken olmadan geçirin veya belirli bir sürümü almak için 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());
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. ?version_number
parametresi olmayan benzer bir get isteği, geçerli etkin şablonu alır.
Remote Config şablonunun depolanan belirli bir sürümüne geri döndür
Şablonun depolanan herhangi bir sürümüne geri dönebilirsiniz. Bir şablonu geri çekmek için:
Firebase konsolu
Geri almaya uygun önceki şablon sürümleri için Değişiklik geçmişi sayfasının sağ üst köşesinde o sürüme geri dönme seçeneği düğmesi gösterilir. Bunu yalnızca ilgili sürüme geri dönmek ve bu değerleri tüm uygulamalar ile kullanıcılar için hemen kullanmak istediğinizden eminseniz tıklayıp onaylayın.
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 :rollback
özel yöntemini ve istek gövdesinde, uygulanacak belirli sürümü kullanarak bir HTTP POST yayınlayın. Örnek:
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 verileriyle birlikte içerir.
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önmek, sürüm 6'nın etkili bir şekilde yeni bir kopyasını oluşturur. Bu kopya, orijinal sürümden yalnızca sürüm numarasının 11 olmasıyla farklıdır. Orijinal sürüm 6, geçerlilik bitiş tarihine ulaşmadığı varsayılarak hâlâ depolanır ve sürüm 11, etkin şablon haline gelir.
Remote Config şablonu silme
Firebase konsolundan Remote Config şablonlarını silebilirsiniz. Bir Remote Config şablonunu silmek için:
1. Remote Config Parametreler sayfasında, Değişiklik geçmişi'ni tıklayın.Silmek istediğiniz şablona geçin,
Diğer'i tıklayın ve Sil'i seçin.Silme işlemini onaylamanız istendiğinde Sil'i tıklayın.
Remote Config şablonlarını indirin ve yayınlayın
Kaynak kontrolü ve derleme sistemlerinize entegre etmek, yapılandırma güncellemelerini otomatikleştirmek ve parametreler ile değerleri birden çok projede senkronize etmek için Remote Config şablonlarını indirip yayınlayın.
Şu anda etkin olan Remote Config şablonunu Firebase konsolundan indirebilirsiniz. Daha sonra, dışa aktarılan JSON dosyasını güncelleyip aynı projede yayınlayabilir veya yeni ya da mevcut bir projede yayınlayabilirsiniz.
Yazılım geliştirme yaşam döngünüzün geliştirme, test, hazırlık ve üretim ortamları gibi farklı aşamalarını temsil eden birden fazla projeniz olduğunu varsayalım. Bu durumda, tamamen test edilmiş bir şablonu hazırlık ortamınızdan indirip üretim projenize yayınlayarak üretim ortamınıza yükseltebilirsiniz.
Bu yöntemi bir projeden diğerine yapılandırmaları taşımak veya yeni bir projeyi mevcut bir projenin parametre ve değerleriyle doldurmak için de kullanabilirsiniz.
Bir A/B testi denemesinde özel olarak varyant olarak oluşturulan parametreler ve parametre değerleri, dışa aktarılan şablonlara dahil edilmez.
Remote Config şablonlarını dışa ve içe aktarmak için:
- Geçerli Remote Config Config şablonunu indirin.
- Remote Config şablonunu doğrulayın.
- Remote Config şablonunu yayınlayın.
Mevcut Remote Config şablonunu indirin
Etkin Remote Config şablonunu JSON biçiminde indirmek için aşağıdakileri kullanın:
Firebase konsolu
- Remote Config Parameters veya Koşullar (Uzak Yapılandırma Parametreleri veya Koşullar) sekmesinden 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, dosyayı kaydetmek istediğiniz konumu seçin ve ardından 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, başlıkları (ETag dahil) ise ayrı bir headers
dosyasına çıkarır.
Remote Config şablonunu doğrulayın
Şablon güncellemelerinizi yayınlamadan önce Firebase Admin SDK veya REST API'yi kullanarak doğrulayabilirsiniz. Şablonlar, Firebase CLI veya Firebase konsolundan yayınlamaya çalıştığınızda da doğrulanır.Şablon doğrulama süreci; parametre ve koşullar için yinelenen anahtarlar, geçersiz koşul adları veya var olmayan koşullar ya da yanlış biçimlendirilmiş ETag'ler gibi hataları kontrol eder. Örneğin, izin verilen sayıdan fazla anahtar (2.000) içeren bir istek 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
Yayınlama isteğinize ?validate_only=true
URL parametresini ekleyerek şablon güncellemelerini doğrulayın:
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 şablonunu döndürür ve kaydedilen headers
dosyasında -0
son ekine sahip HTTP/2 durumu 200 ve güncellenmiş bir ETag görürsünüz. Şablonunuz doğrulanmadıysa JSON yanıtında doğrulama hatası alırsınız ve headers
dosyanız 200 olmayan bir yanıt içerir (ve ETag içermez).
Remote Config şablonunu yayınlayın
Şablonu indirdikten, JSON içeriğinde gerekli değişiklikleri yaptıktan ve doğruladıktan sonra dosyayı bir projeye yayınlayabilirsiniz.
Şablon yayınladığınızda, mevcut yapılandırma şablonunun tamamı güncellenen dosyayla değiştirilir ve şablon sürümü bir birim artar. Yapılandırmanın tamamı değiştirildiği için JSON dosyasından bir parametreyi silip yayınlarsanız parametre sunucudan silinir ve artık istemciler tarafından kullanılamaz.
Yayınlama işleminden sonra, parametrelerde ve değerlerde yapılan değişiklikler uygulamalarınız ve kullanıcılarınız için anında kullanıma sunulur. Gerekirse önceki sürüme dönebilirsiniz.
Şablonunuzu yayınlamak için aşağıdaki komutları kullanın:
Firebase konsolu
- Remote Config Parameters veya Koşullar (Uzak Yapılandırma Parametreleri veya Koşullar) sekmesinde Menü'yü açın ve Publish from a file (Dosyadan yayınla) seçeneğini belirleyin.
- İstendiğinde Browse'u (Göz at) tıklayın, yayınlamak istediğiniz Remote Config dosyasına gidip bu dosyayı seçin ve ardından Select'i (Seç) tıklayın.
- Dosya doğrulanır ve başarılı olursa yapılandırmayı uygulamalarınız ve kullanıcılarınız için 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 "@" karakterini ve ardından dosya adını kullanarak içeriği belirtebilirsiniz.
Remote Config kişiselleştirmeleri ve koşulları, indirilen şablonlara dahil edilir. Bu nedenle, farklı bir projeye yayınlamayı denerken aşağıdaki sınırlamalara dikkat etmeniz önemlidir:
Kişiselleştirmeler, bir projeden projeye aktarılamaz.
Örneğin, projenizde kişiselleştirmeler etkinse bir şablon indirip düzenlerseniz bu şablonu aynı projede yayınlayabilirsiniz ancak kişiselleştirmeleri şablondan silmediğiniz sürece farklı bir projede yayınlayamazsınız.
Koşullar projeden projeye aktarılabilir ancak yayınlanmadan önce hedef projede belirli koşullu değerlerin (ör. uygulama kimlikleri veya kitleler) bulunması gerektiğini unutmayın.
Örneğin,
iOS
platform değerini belirten bir koşulu kullanan Remote Config parametreniz varsa platform değerleri tüm projeler için aynı olduğundan şablon başka bir projede yayınlanabilir. Ancak hedef projede bulunmayan belirli bir uygulama kimliğine veya kullanıcı kitlesine dayalı bir koşul içeriyorsa doğrulama başarısız olur.Yayınlamayı planladığınız şablon Google Analytics'e dayanan koşullar içeriyorsa hedef projede Analytics etkinleştirilmelidir.
Remote Config şablon varsayılanlarını indirin
Uygulamanız her zaman internete bağlı olmayabileceğinden tüm Remote Config parametreleri için istemci taraflı uygulama varsayılan değerlerini yapılandırmanız gerekir. Ayrıca zaman içinde değişebileceği için uygulama istemcisinin varsayılan değerlerini ve Remote Config arka uç varsayılan parametre değerlerini düzenli aralıklarla senkronize etmeniz gerekir.
Bu bölümün sonundaki platforma özel bağlantılarda açıklandığı gibi, bu varsayılan ayarları uygulamanızda manuel olarak ayarlayabilir veya yalnızca tüm parametrelere ait anahtar/değer çiftlerini ve bunların etkin Remote Config şablonundaki varsayılan değerlerini içeren dosyaları indirerek bu işlemi kolaylaştırabilirsiniz. Daha sonra bu dosyayı projenize ekleyebilir ve uygulamanızı bu değerleri içe aktaracak şekilde yapılandırabilirsiniz.
Bu dosyaları, Android uygulamaları için XML, iOS uygulamaları için özellik listesi (plist) 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 yeni uygulama sürümlerinden önce Remote Config varsayılanlarını düzenli olarak indirmenizi öneririz.
Ş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'
İndirmek istediğiniz dosya biçimine bağlı olarak format
değeri olarak XML
, PLIST
veya JSON
kullanın.
Firebase konsolu
- Parametreler sekmesinde Menü'yü açın ve Varsayılan değerleri indir'i seçin.
- İstendiğinde, indirmek istediğiniz dosya biçimine karşılık gelen radyo düğmesini ve ardından Dosyayı indir'i tıklayın.
Remote Config varsayılan değerlerini uygulamanıza aktarma hakkında daha fazla bilgi edinmek için şu sayfaya göz atı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