Firebase Remote Config, Firebase Admin Node.js SDK v12.1.0+ kullanılarak sunucu tarafı yapılandırmasını destekler. Bu özellik, Remote Config kullanarak sunucu tarafı uygulamalarının davranışını ve yapılandırmasını dinamik olarak yönetmenizi sağlar. Bu, Cloud Functions gibi sunucusuz uygulamaları içerir.
Firebase istemci SDK'ları, Remote Config şablonundan türetilen istemciye özel bir yapılandırma getirirken sunucu tarafı Remote Config SDK'sı, Firebase'den Remote Config şablonunun tamamını indirir. Ardından sunucunuz, şablonu her gelen istekle birlikte değerlendirebilir ve kendi mantığını kullanarak çok düşük gecikme süresiyle özelleştirilmiş bir yanıt sunabilir. Koşulları kullanarak yanıtları rastgele yüzdelere ve özel sinyallerde tanımlanan müşteri özelliklerine göre kontrol edip özelleştirebilirsiniz.
Sunucu tarafı Remote Config ile şunları yapabilirsiniz:
- Sunucunuzda çalışan veya sunucunuz üzerinden erişilen uygulamalar için yapılandırma parametrelerini tanımlayarak API anahtarlarınızın güvenliğini sağlamak amacıyla yapay zeka modeli parametrelerini ve istemlerini uzaktan yapılandırma gibi kullanım alanlarına ve diğer entegrasyonlara olanak tanıyın.
- Ortamınızdaki değişikliklere veya diğer uygulama değişikliklerine (ör. LLM parametrelerini ve model uç noktalarını güncelleme) yanıt olarak parametreleri dinamik bir şekilde ayarlayın.
- Sunucunuzun çağırdığı API'leri uzaktan güncelleyerek maliyetleri kontrol edin.
- Sunucunuza erişen istemciler için anında özel yapılandırmalar oluşturun.
- Hangi istemcilerin parametre değeri aldığını kaydedin ve bunu Cloud Functions içinde hak doğrulama sisteminin bir parçası olarak kullanın.
Sunucu tarafı Remote Config'ı Cloud Run'da, Cloud Functions veya kendi bünyesinde barındırılan sunucu ortamlarında dağıtabilirsiniz.
Başlamadan önce
Firebase projesi oluşturmak, hizmet hesabı ayarlamak ve Firebase Admin Node.js SDK'sını sunucunuza eklemek için Firebase Admin SDK'sını sunucunuza ekleme bölümündeki talimatları uygulayın.
1. adım: Firebase Admin Node.js SDK'sını başlatın ve API isteklerini yetkilendirin
Admin SDK'sını parametre olmadan başlattığınızda SDK, Google Application Default Credentials'ı kullanır ve GOOGLE_APPLICATION_CREDENTIALS ortam değişkeninden seçenekleri okur. SDK'yı başlatmak ve Remote Config eklemek için:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
2. adım: Sunucu uygulamanız için varsayılan parametre değerlerini belirleyin
Uygulamanızda Remote Config ile dinamik olarak güncellemek istediğiniz değişkenleri belirleyin. Ardından, uygulamanızda hangi değişkenlerin varsayılan olarak ayarlanması gerektiğini ve varsayılan değerlerinin ne olması gerektiğini düşünün. Bu, uygulamanızın Remote Config arka uç sunucusuna bağlantısı kesilse bile başarıyla çalışmasını sağlar.
Örneğin, üretken yapay zeka işlevini yöneten bir sunucu uygulaması yazıyorsanız varsayılan model adı, istem önsözü ve üretken yapay zeka yapılandırması ayarlayabilirsiniz. Örneğin:
| Parametre adı | Açıklama | Tür | Varsayılan değer |
|---|---|---|---|
model_name |
Model API adı | Dize | gemini-2.0-flash |
preamble_prompt
|
Kullanıcının sorgusunun başına eklenecek istem | Dize | I'm a
developer who
wants to learn
about Firebase and
you are a helpful
assistant who
knows everything
there is to know
about Firebase! |
generation_config
|
Modele gönderilecek parametreler | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
3. adım: Sunucu uygulamanızı yapılandırın
Remote Config ile kullanmak istediğiniz parametreleri belirledikten sonra, uygulamanızı varsayılan değerleri ayarlayacak, sunucuya özel Remote Config şablonunu getirecek ve değerlerini kullanacak şekilde yapılandırın. Aşağıdaki adımlarda, Node.js uygulamanızı nasıl yapılandıracağınız açıklanmaktadır.
Şablona erişip yükleyin.
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();Node.js'yi Cloud Functions içinde kullanıyorsanız şablonu tek bir adımda başlatmak ve yüklemek için eşzamansız
getServerTemplateişlevini kullanabilirsiniz:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();Uygulamanızın Remote Config arka uç sunucusuna bağlantısı kesilse bile başarılı bir şekilde çalışmasını sağlamak için uygulamanıza her parametre için varsayılan değerler ekleyin. Bunu yapmak için
initServerTemplateveyagetServerTemplateşablon işlevinizin içinedefaultConfigekleyin:const template = rc.initServerTemplate({ defaultConfig: { model_name: "gemini-pro", generation_config: '{"stopSequences": [], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}', preamble_prompt: "I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!" }, }); // Load Remote Config await template.load()Şablon yüklendikten sonra, şablondaki parametreleri ve değerleri içe aktarmak için
template.evaluate()simgesini kullanın:// Add template parameters to config const config = template.evaluate();İsteğe bağlı olarak, Remote Config şablonunuzda koşullar ayarlarsanız istediğiniz değerleri tanımlayıp sağlayın:
- Yüzde koşullarını kullanıyorsanız
template.evaluate()işlevinde koşullarınızı değerlendirmek için kullanmak istediğinizrandomizationIddeğerini ekleyin. - Özel sinyaller kullanıyorsanız özellikleri ve değerlerini tanımlayın. Özel sinyaller, Firebase Admin Node.js SDK 12.5.0 ve sonraki sürümlerinde kullanılabilir.
Örneğin, sunucunuza ulaşan her kullanıcının uygun rastgele gruba eklenmesini sağlamak için Firebase yükleme kimliğini
randomizationIdolarak, belirli istemci sürümlerini hedeflemek için özel sinyal olarakversion'ı ve istemci platformunu hedeflemek için özel sinyal olarakplatform'ı ayarlayabilirsiniz.Koşullar hakkında daha fazla bilgi için Koşul kuralı türleri başlıklı makaleyi inceleyin.
// Add template parameters to `config`. Evaluates the // template and returns the parameter value assigned to // the group assigned to the {randomizationId} and version. const config = template.evaluate({ randomizationId: "2ac93c28-c459-4760-963d-a3974ec26c04", version: "1.0", platform: "Android" });- Yüzde koşullarını kullanıyorsanız
Ardından, yapılandırma sabitinden ihtiyacınız olan parametre değerlerini ayıklayın.
gettersişlevini kullanarak Remote Config içindeki değerleri beklenen biçime dönüştürün. Aşağıdaki türler desteklenir:- Boole:
getBoolean - Nesne:
getValue - Numara:
getNumber - Dize:
getString
Örneğin, sunucunuzda Agent Platform uyguluyorsanız ve modeli ile model parametrelerini değiştirmek istiyorsanız
model_namevegeneration_configiçin parametreleri yapılandırmak isteyebilirsiniz. Remote Config değerlerine nasıl erişebileceğinize dair bir örnek:// Replace defaults with values from Remote Config. const generationConfig = JSON.parse( config.getString('generation_config')); const is_ai_enabled = config.getBool('is_ai_enabled'); const model = config.getString('model_name'); // Generates a prompt comprised of the Remote Config // parameter and prepends it to the user prompt const prompt = `${config.getString('preamble_prompt')} ${req.query.prompt}`;- Boole:
Sunucusuz bir ortamın aksine, sunucunuz uzun süredir çalışıyorsa
setIntervalsunucusundan en güncel şablonu aldığınızı doğrulamak için şablonu düzenli olarak yeniden yüklemek üzere Remote Config öğesini kullanın.
4. adım: Remote Config içinde sunucuya özel parametre değerlerini ayarlayın
Ardından, bir sunucu Remote Config şablonu oluşturun ve uygulamanızda kullanılacak parametreleri ve değerleri yapılandırın.
Sunucuya özel Remote Config şablonu oluşturmak için:
Firebase konsolunda DevOps & Engagement (DevOps ve Etkileşim) > Remote Config > Parameters (Parametreler) sayfasına gidin.
Sayfanın üst kısmındaki İstemci/Sunucu seçicisinden Sunucu'yu seçin.
Uygulamanızda tanımladığınız parametrelerle aynı adlara ve veri türlerine sahip Remote Config parametreler tanımlayın ve değerler sağlayın. Bu değerler, şablonu getirip değerlendirirken ve bu değerleri değişkenlerinize atarken Sunucu uygulamanızı yapılandırın bölümünde ayarladığınız
defaultConfigdeğerlerini geçersiz kılar.İsteğe bağlı olarak, değerleri örneklerin rastgele bir örneğine veya tanımladığınız özel sinyallere kalıcı olarak uygulamak için koşullar belirleyin. Koşullar hakkında daha fazla bilgi için Koşul kuralı türleri başlıklı makaleyi inceleyin.
Parametre eklemeyi tamamladığınızda Değişiklikleri yayınla'yı tıklayın.
Değişiklikleri inceleyin ve tekrar Değişiklikleri yayınla'yı tıklayın.
5. adım: Cloud Functions veya Cloud Run ile dağıtın
Sunucu uygulamanız hafif ve etkinliğe dayalıysa kodunuzu Cloud Functions kullanarak dağıtmayı düşünebilirsiniz. Örneğin, üretken yapay zeka API'si (ör. Google AI veya Agent Platform) tarafından desteklenen karakter diyalogları içeren bir uygulamanız olduğunu varsayalım. Bu durumda, uygulamanızın isteğe bağlı olarak çağırdığı bir işlevde LLM hizmeti sunma mantığınızı barındırabilirsiniz.
Sunucu tarafı Remote Config ile 2. nesil Cloud Functions kullanan bir çözüm üzerinde çalışmak için Cloud Functions ve Agent Platform ile sunucu tarafı Remote Config'ı kullanma başlıklı makaleyi inceleyin.
Uygulamanızı Cloud Functions ile dağıtma hakkında daha fazla bilgi edinmek için Başlangıç: İlk işlevlerinizi yazma, test etme ve dağıtma başlıklı makaleyi inceleyin.
Remote Config ve App Check ile Agent Platform Gemini API (formerly Vertex AI)'ü çağırma bölümünde sunucu tarafı Remote Config ve App Check ile örnek bir çağrılabilir işlevi deneyin.
Sunucu tarafında oluşturulan bir web uygulaması geliştiriyorsanız App Hosting, popüler web çerçevelerini destekler.
Aksi takdirde Cloud Run'ı kullanabilirsiniz. Sunucu uygulamanızı Cloud Run ile dağıtmak için Hızlı Başlangıç: Cloud Run'a Node.js hizmeti dağıtma başlıklı kılavuzu inceleyin.
Cloud Run ve Cloud Functions için en iyi kullanım alanları hakkında daha fazla bilgi edinmek istiyorsanız Cloud Functions ve Cloud Run: Ne zaman hangisi kullanılmalı? başlıklı makaleyi inceleyin.