Remote Config şablonu, Firebase projeniz için oluşturduğunuz JSON biçimli parametrelerden ve koşullardan oluşan sunucu tarafı kümesidir. Şablonun içeriğini Parametreler ve Koşullar sekmelerinde grafik biçiminde görüntüleyen Firebase konsolunu kullanarak şablonu değiştirebilir ve yönetebilirsiniz. Yapılandırmanızı değiştirmek ve yönetmek için Remote Config REST API'yi ve Admin SDK'yı veya Firebase CLI'yi de kullanabilirsiniz.
Aşağıda bir şablon dosyası örneği 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"
}
}
Parametreleri her güncellediğinizde Remote Config, yeni sürümlü bir Remote Config şablonu oluşturur ve önceki şablonu, gerektiğinde alabileceğiniz veya geri alabileceğiniz bir sürüm olarak saklar. Sürüm numaraları, Remote Config tarafından saklanan başlangıç değerinden itibaren sırayla artırılır. Tüm şablonlar, gösterildiği gibi, söz konusu sürümle ilgili meta verileri içeren bir version
alanı içerir.
Firebase konsolu, Firebase CLI veya Remote Config arka uç API'leri ile şu sürüm yönetimi görevlerini gerçekleştirebilirsiniz:
- Saklanan tüm şablon sürümlerini listele
- Belirli bir sürümü alın
- Belirli bir sürüme geri dönme
Remote Config şablonlarını gerektiği gibi Remote Config konsolundaki Değişiklik geçmişi sayfasından silebilirsiniz. Silinen şablonlar için saklanan sürüm numaralarını da içeren toplam 300 ömür boyu saklanan sürüm sınırı vardır. Bir projenin ömrü boyunca 300'den fazla şablon sürümü yayınlarsanız en eski sürümler silinir ve maksimum 300 sürüm korunur.
Remote Config şablonu sürümlerini yönetin
Bu bölümde Remote Config şablonunuzun sürümlerini nasıl yöneteceğiniz açıklanmaktadır. Şablonların programlı olarak nasıl oluşturulacağı, değiştirileceği ve kaydedileceği hakkında daha fazla ayrıntı için bkz . Remote Config'i programlı olarak değiştirme .
Remote Config şablonunun tüm kayıtlı sürümlerini listeleyin
Remote Config şablonunun kayıtlı tüm sürümlerinin bir listesini alabilirsiniz. Örneğin:
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()); }
DİNLENMEK
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
Firebase konsolu
Parametreler sekmesinde sağ üstte görüntülenen "saat" simgesini seçin. Bu, sağdaki bir liste menüsünde saklanan tüm şablon sürümlerini listeleyen Değişiklik geçmişi sayfasını açar.
Saklanan her sürüm için görüntülenen ayrıntılar, değişikliklerin Konsoldan mı, REST API'den mi, geri alma işleminden mi kaynaklandığına yoksa bunların şablonun zorunlu olarak kaydedilmesinden kaynaklanan artımlı değişiklikler mi olduğuna ilişkin bilgileri içerir.
Firebase CLI
firebase remoteconfig:versions:list
Döndürülen sürüm sayısını sınırlamak için --limit
seçeneğini kullanın. Tüm sürümleri getirmek için '0'ı iletin.
Şablon listesi, güncellemenin zamanı, güncellemeyi yapan kullanıcı ve güncellemenin konsol veya REST API aracılığıyla yapılıp yapılmadığı dahil, depolanan tüm sürümlere ilişkin meta verileri içerir. Burada bir version öğesinin bir örneği verilmiştir:
{
"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ın
Remote Config şablonunun herhangi bir belirli kayıtlı sürümünü alabilirsiniz. Örneğin:
Node.js
Şablonun en son sürümünü almak için getTemplate()
işlevini hiçbir argüman olmadan iletin veya belirli bir sürümü almak için getTemplateAtVersion()
öğesini 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());
DİNLENMEK
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 için bunu kullanamazsınız. ?version_number
parametresi olmayan benzer bir alma isteği, geçerli etkin şablonu alır.
Firebase konsolu
Varsayılan olarak Değişiklik geçmişi sekmesindeki ayrıntılar bölmesi geçerli etkin şablonu görüntüler. Listedeki başka bir sürümün ayrıntılarını görüntülemek için sağ menüden onu seçin.
Seçili olmayan herhangi bir sürümün içerik menüsünün üzerine gelip Seçilen sürümle karşılaştır'ı seçerek, halihazırda seçili olan sürüm ile diğer kayıtlı sürümler arasındaki ayrıntılı farkı görüntüleyebilirsiniz.
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
İsteğe bağlı olarak, çıktıyı -o, FILENAME
ile belirtilen bir dosyaya yazabilirsiniz.
Remote Config şablonunun belirli bir kayıtlı sürümüne geri dönün
Şablonun kayıtlı herhangi bir sürümüne geri dönebilirsiniz. Örneğin:
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()); } }
DİNLENMEK
Saklanan bir Remote Config şablonuna geri dönmek için, :rollback
özel yöntemini ve istek gövdesinde uygulanacak belirli sürümü içeren bir HTTP POST yayınlayı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, yeni sürüm meta verileriyle birlikte şu anda etkin olan depolanan şablonun içeriğini içerir.
Firebase konsolu
Geri almaya uygun önceki şablon sürümleri için, Değişiklik geçmişi sayfasının sağ üst kısmında o sürüme geri dönmeye yönelik bir seçenek düğmesi görüntülenir. Yalnızca söz konusu sürüme geri dönmek ve bu değerleri tüm uygulamalar ve kullanıcılar için hemen kullanmak istediğinizden eminseniz bunu tıklayın ve onaylayın.
Firebase CLI
firebase remoteconfig:rollback -v VERSION_NUMBER
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önüş, sürüm 6'nın yeni bir kopyasını etkili bir şekilde oluşturur; orijinalinden yalnızca sürüm numarasının 11 olması bakımından farklılık gösterir. Orijinal sürüm 6, son kullanma tarihinin dolmadığı varsayılarak hâlâ depolanır ve sürüm 11 etkin şablon haline gelir.
Remote Config şablonunu silme
Remote Config şablonlarını Firebase konsolundan silebilirsiniz. Remote Config şablonunu silmek için:
Remote Config Parameters ( Uzaktan Yapılandırma Parametreleri) 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 ardından 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 parametreleri ve değerleri birden fazla projede senkronize tutmak için Remote Config şablonlarını indirin ve yayınlayın.
Şu anda etkin olan Remote Config şablonunu program aracılığıyla veya Firebase konsolundan indirebilirsiniz. Daha sonra dışa aktarılan JSON dosyasını güncelleyebilir ve aynı projede ya da yeni veya mevcut bir projede yayınlayabilirsiniz.
Geliştirme, test, hazırlama ve üretim ortamları gibi yazılım geliştirme yaşam döngünüzün farklı aşamalarını temsil eden birden fazla projeniz olduğunu varsayalım. Bu durumda, tamamen test edilmiş bir şablonu hazırlama ortamınızdan üretim ortamınıza, hazırlama projenizden indirip üretim projenizde yayınlayarak tanıtabilirsiniz.
Bu yöntemi, konfigürasyonları bir projeden diğerine geçirmek veya yeni bir projeyi kurulu bir projedeki parametreler ve değerlerle doldurmak için de kullanabilirsiniz.
Bir A/B Testi denemesinde özel olarak varyantlar 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 Uzaktan Yapılandırma Yapılandırma şablonunu indirin .
- Remote Config şablonunu doğrulayın .
- Remote Config şablonunu yayımlayın .
Geçerli Uzaktan Yapılandırma Şablonunu indirin
Geçerli ve etkin Remote Config şablonunu programlı olarak veya Firebase konsolunu kullanarak indirebilirsiniz.
Etkin Remote Config şablonunu JSON formatında indirmek için aşağıdaki komutları kullanın:
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());
DİNLENMEK
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 headers
dosyasına çıkarır.
Firebase konsolu
- Uzak Yapılandırma Parametreleri veya Koşulları sekmesinden Menüsünü açın ve Geçerli yapılandırma dosyasını indir seçeneğini seçin.
- İstendiğinde Yapılandırma dosyasını indir'e tıklayın, dosyayı kaydetmek istediğiniz konumu seçin ve ardından Kaydet'e tıklayın.
Firebase CLI
firebase remoteconfig:get -o filename
Remote Config şablonunu doğrulayın
Firebase Admin SDK'yı veya REST API'yi kullanarak şablon güncellemelerinizi yayınlamadan önce doğrulayabilirsiniz. Şablonlar, Firebase CLI veya Firebase konsolundan yayınlamaya çalıştığınızda da doğrulanır.
Şablon 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'ler 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.
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()); } }
DİNLENMEK
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 bir HTTP/2 durumu 200 ve -0
son ekiyle güncellenmiş bir ETag bulacaksı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ımlayın
Bir şablonu indirdikten, JSON içeriğinde gerekli değişiklikleri yaptıktan ve doğruladıktan sonra bunu bir projede yayınlayabilirsiniz.
Bir şablonun yayınlanması, mevcut yapılandırma şablonunun tamamını güncellenen dosyayla değiştirir ve şablon sürümünü birer birer artırır. 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ınlamanın ardından parametrelerde ve değerlerde yapılan değişiklikler, uygulamalarınız ve kullanıcılarınız için hemen kullanılabilir. Gerekirse önceki sürüme geri dönebilirsiniz .
Şablonunuzu yayınlamak için aşağıdaki komutları kullanın:
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()); } }
DİNLENMEK
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.
Firebase konsolu
- Uzaktan Yapılandırma Parametreleri veya Koşulları sekmesinden Menüsünü açın ve Bir dosyadan yayınla seçeneğini seçin.
- İstendiğinde Gözat'a tıklayın, yayınlamak istediğiniz Remote Config dosyasına gidin ve onu seçin, ardından Seç'e tıklayın.
- Dosya doğrulanacak 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'ya tıklayabilirsiniz.
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.
Remote Config şablonu varsayılanlarını 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. Ayrıca zaman içinde değişebileceklerinden, uygulama istemcinizin 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, uygulamanızda bu varsayılanları manuel olarak ayarlayabilir veya tüm parametreler için yalnızca anahtar/değer çiftlerini ve bunların varsayılan değerlerini içeren dosyaları indirerek bu işlemi kolaylaştırabilirsiniz. etkin Uzaktan Yapılandırma şablonu. 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 formatında, iOS uygulamaları için özellik listesi (plist) formatında ve web uygulamaları için JSON formatında indirebilirsiniz.
Uygulamanızın ve Remote Config arka ucunun senkronize kalmasını sağlamak için yeni bir uygulama yayınlanmadan önce Remote Config varsayılanlarını düzenli aralıklarla indirmenizi öneririz.
Şablon varsayılanlarını içeren bir dosyayı indirmek için:
DİNLENMEK
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üsünü açın ve Varsayılan değerleri indir seçeneğini seçin.
- İstendiğinde, indirmek istediğiniz dosya biçimine karşılık gelen radyo düğmesini ve ardından Dosyayı indir seçeneğini tıklayın.
Remote Config varsayılan değerlerini uygulamanıza aktarma hakkında daha fazla bilgi için bkz.:
Android için uygulama içi varsayılan parametre değerlerini ayarlayın
iOS için uygulama içi varsayılan parametre değerlerini ayarlayın
Web için uygulama içi varsayılan parametre değerlerini ayarlayın
Unity için uygulama içi varsayılan parametre değerlerini ayarlayın
C++ için uygulama içi varsayılan parametre değerlerini ayarlama