ใช้การกำหนดค่าระยะไกลในสภาพแวดล้อมของเซิร์ฟเวอร์

Firebase Remote Config รองรับการกำหนดค่าฝั่งเซิร์ฟเวอร์โดยใช้ Firebase Admin SDK สำหรับ Node.js (v12.1.0 ขึ้นไป), Python (v6.7.0 ขึ้นไป), Java (v9.7.0 ขึ้นไป) และ Go (v4.17.0 ขึ้นไป)

ความสามารถนี้ช่วยให้คุณจัดการลักษณะการทำงานและการกำหนดค่าของแอปพลิเคชันฝั่งเซิร์ฟเวอร์แบบไดนามิกได้โดยใช้ Remote Config ซึ่งรวมถึงการติดตั้งใช้งานแบบ Serverless เช่น Cloud Functions for Firebase และบริการที่ใช้คอนเทนเนอร์ใน Cloud Run

SDK ของ Remote Config ฝั่งเซิร์ฟเวอร์จะดาวน์โหลดหรือดึงเทมเพลต Remote Config ที่สมบูรณ์จาก Firebase ซึ่งแตกต่างจาก SDK ของไคลเอ็นต์ Firebase ที่ดึงการกำหนดค่าเฉพาะไคลเอ็นต์ที่ได้มาจากเทมเพลต Remote Config จากนั้นเซิร์ฟเวอร์จะประเมินเทมเพลตกับคำขอขาเข้าแต่ละรายการและใช้ตรรกะของตัวเองเพื่อแสดงการตอบกลับที่กำหนดเองโดยมีเวลาในการตอบสนองต่ำมาก คุณสามารถใช้เงื่อนไขเพื่อควบคุมและปรับแต่งการตอบกลับตามเปอร์เซ็นต์แบบสุ่มและแอตทริบิวต์ของไคลเอ็นต์ที่กำหนดไว้ในสัญญาณที่กำหนดเอง

Remote Configฝั่งเซิร์ฟเวอร์ช่วยให้คุณทำสิ่งต่อไปนี้ได้

  • กำหนดพารามิเตอร์การกำหนดค่าสำหรับแอปพลิเคชันที่ทำงานบนหรือเข้าถึงผ่านเซิร์ฟเวอร์ของคุณ ซึ่งช่วยให้สามารถใช้กรณีต่างๆ เช่น การกำหนดค่าระยะไกลพารามิเตอร์และพรอมต์ของโมเดล AI และการผสานรวมอื่นๆ เพื่อให้มั่นใจว่าคีย์ API ของคุณจะปลอดภัย
  • ปรับพารามิเตอร์แบบไดนามิกเพื่อตอบสนองต่อการเปลี่ยนแปลงในสภาพแวดล้อมหรือการเปลี่ยนแปลงอื่นๆ ของแอปพลิเคชัน เช่น การอัปเดตพารามิเตอร์ LLM และปลายทางของโมเดล
  • ควบคุมค่าใช้จ่ายด้วยการอัปเดต API ที่เซิร์ฟเวอร์เรียกใช้จากระยะไกล
  • สร้างการกำหนดค่าที่กำหนดเองได้ทันทีสำหรับไคลเอ็นต์ที่เข้าถึงเซิร์ฟเวอร์ของคุณ
  • บันทึกว่าไคลเอ็นต์ใดได้รับค่าพารามิเตอร์และใช้ค่านี้ใน Cloud Functions for Firebase เป็นส่วนหนึ่งของระบบการยืนยันการให้สิทธิ์

คุณสามารถติดตั้งใช้งาน Remote Config ฝั่งเซิร์ฟเวอร์ในสภาพแวดล้อมเซิร์ฟเวอร์ Cloud Run, Cloud Functions for Firebase หรือเซิร์ฟเวอร์ที่โฮสต์เองได้

ก่อนเริ่มต้น

ทำตามวิธีการในหัวข้อเพิ่ม Firebase Admin SDK ลงในเซิร์ฟเวอร์เพื่อสร้างโปรเจ็กต์ Firebase, ตั้งค่าบัญชีบริการ และเพิ่ม Firebase Admin SDK ลงในเซิร์ฟเวอร์ ตรวจสอบว่าคุณใช้ Admin SDK เวอร์ชันที่รองรับสำหรับแพลตฟอร์มของคุณ ดังนี้

  • Node.js: Firebase Admin Node.js SDK v12.1.0 ขึ้นไป
  • Python: Firebase Admin Python SDK v6.7.0 ขึ้นไป
  • Java: Firebase Admin Java SDK v9.7.0 ขึ้นไป
  • Go: Firebase Admin Go SDK v4.17.0 ขึ้นไป

ขั้นตอนที่ 1: เริ่มต้น Firebase Admin SDK และให้สิทธิ์คำขอ API

เมื่อคุณเริ่มต้น Admin SDK โดยไม่มีพารามิเตอร์ SDK จะใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน Google และอ่านตัวเลือกจากตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS เริ่มต้น SDK และกำหนดค่า Remote Config สำหรับแพลตฟอร์มของคุณ

Node.js

นำเข้า initializeApp และ getRemoteConfig จากนั้นเริ่มต้นอินสแตนซ์แอปพลิเคชัน Firebase ดังนี้

import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";

// Initialize Firebase
const firebaseApp = initializeApp();

Python

นำเข้า firebase_admin (พร้อมกับ asyncio และ json สำหรับการโหลดเทมเพลตแบบอะซิงโครนัสและการแยกวิเคราะห์ JSON) จากนั้นเริ่มต้นแอปพลิเคชัน

import firebase_admin
import asyncio
import json

firebase_admin.initialize_app()

Java

เริ่มต้น Firebase Admin SDK โดยใช้ FirebaseOptions และข้อมูลเข้าสู่ระบบของบัญชีบริการ

// Initialize the Firebase Admin SDK
FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .build();
FirebaseApp.initializeApp(options);

Go

เริ่มต้นแอปพลิเคชัน Firebase และสร้างอินสแตนซ์ไคลเอ็นต์ RemoteConfig ดังนี้

ctx := context.Background()

// Initialize Firebase
app, err := firebase.NewApp(ctx, nil)
if err != nil {
    log.Fatalln("Error initializing app:", err)
}

remoteConfig, err := app.RemoteConfig(ctx)
if err != nil {
    log.Fatalln("Error initializing remote config client:", err)
}

ขั้นตอนที่ 2: ระบุค่าพารามิเตอร์เริ่มต้นสำหรับแอปพลิเคชันเซิร์ฟเวอร์

ระบุตัวแปรในแอปที่ต้องการอัปเดตแบบไดนามิกด้วย Remote Config จากนั้นพิจารณาว่าต้องตั้งค่าตัวแปรใดโดยค่าเริ่มต้นในแอปพลิเคชัน และค่าเริ่มต้นควรเป็นค่าใด วิธีนี้ช่วยให้มั่นใจได้ว่าแอปพลิเคชันจะทำงานได้สำเร็จแม้ว่าการเชื่อมต่อกับเซิร์ฟเวอร์แบ็กเอนด์ Remote Config จะขัดข้องก็ตาม

ตัวอย่างเช่น หากคุณกำลังเขียนแอปพลิเคชันเซิร์ฟเวอร์ที่จัดการฟังก์ชัน AI คุณอาจตั้งชื่อโมเดลเริ่มต้น ข้อความนำพรอมต์ และการกำหนดค่า Generative AI ดังต่อไปนี้

ชื่อพารามิเตอร์ คำอธิบาย ประเภท มูลค่าเริ่มต้น
model_name ชื่อ API ของโมเดล สตริง gemini-3.8-flash
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!
generation_config พารามิเตอร์ที่จะส่งไปยังโมเดล JSON {"stopSequences": ["I hope this helps"], "maxOutputTokens": 512}

ขั้นตอนที่ 3: กำหนดค่าแอปพลิเคชันเซิร์ฟเวอร์

หลังจากกำหนดพารามิเตอร์ที่ต้องการใช้กับ Remote Config แล้ว ให้กำหนดค่าแอปพลิเคชันเพื่อตั้งค่าเริ่มต้น ดึงข้อมูลเทมเพลต Remote Config เฉพาะเซิร์ฟเวอร์ และประเมินค่าของเทมเพลต

  1. เข้าถึงและโหลดเทมเพลตเซิร์ฟเวอร์ Remote Config

    Node.js

    เริ่มต้นเทมเพลตเซิร์ฟเวอร์โดยใช้ initServerTemplate() และเรียกใช้ load() เพื่อดึงข้อมูลเทมเพลตจากแบ็กเอนด์

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = rc.initServerTemplate();
    
    // Load Remote Config
    await template.load();
    

    หากใช้ Node.js ภายใน Cloud Functions for Firebase คุณสามารถใช้ฟังก์ชัน getServerTemplate() แบบอะซิงโครนัสเพื่อเริ่มต้นและโหลดเทมเพลตในขั้นตอนเดียวได้ ดังนี้

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = await rc.getServerTemplate();
    

    Python

    เริ่มต้นเทมเพลตเซิร์ฟเวอร์โดยใช้ init_server_template() และเรียกใช้ load() เพื่อดึงข้อมูลเทมเพลตจากแบ็กเอนด์

    from firebase_admin import remote_config
    
    # Initialize server-side Remote Config
    template = remote_config.init_server_template()
    
    # Load the template from the backend
    asyncio.run(template.load())
    

    หรือหากใช้ Python กับ Cloud Functions for Firebase คุณสามารถใช้ฟังก์ชัน get_server_template() แบบอะซิงโครนัสเพื่อเริ่มต้นและโหลดเทมเพลตในขั้นตอนเดียวได้ ดังนี้

    # Initialize server-side Remote Config
    template = await remote_config.get_server_template()
    

    Java

    เริ่มต้นไคลเอ็นต์ Remote Config ฝั่งเซิร์ฟเวอร์โดยใช้ FirebaseRemoteConfig.getInstance():

    // Initialize server-side Remote Config client
    FirebaseRemoteConfig rc = FirebaseRemoteConfig.getInstance();
    

    หรือหากใช้ Java กับ Cloud Functions for Firebase คุณสามารถใช้ getServerTemplate() เพื่อเริ่มต้นและโหลดเทมเพลตในขั้นตอนเดียวได้ ดังนี้

    ServerTemplate template = rc.getServerTemplate();
    

    Go

    เริ่มต้นเทมเพลตเซิร์ฟเวอร์โดยใช้ InitServerTemplate() และเรียกใช้ Load() เพื่อดึงข้อมูลเทมเพลตจากแบ็กเอนด์

    // Initialize server-side Remote Config
    defaultConfig := make(map[string]any)
    templateDataJSON := ""
    template, err := remoteConfig.InitServerTemplate(defaultConfig, templateDataJSON)
    if err != nil {
        log.Fatalln("Error initializing server template:", err)
    }
    
    // Load Remote Config
    err = template.Load(ctx)
    if err != nil {
        log.Fatalln("Error fetching server template:", err)
    }
    

    อีกวิธีหนึ่งในการเริ่มต้นเทมเพลตคือการใช้ฟังก์ชัน GetServerTemplate เพื่อดึงข้อมูลเทมเพลตเซิร์ฟเวอร์ที่จำเป็น คุณสามารถแปลงเทมเพลตนี้เป็นรูปแบบ JSON ที่จัดเก็บไว้ในเครื่องได้ จากนั้นจึงเริ่มต้นเทมเพลต JSON นี้โดยใช้ฟังก์ชัน InitServerTemplate

  2. เพื่อให้แอปพลิเคชันทำงานได้สำเร็จแม้ว่าการเชื่อมต่อกับเซิร์ฟเวอร์แบ็กเอนด์ของ Remote Config จะถูกขัดจังหวะ ให้เพิ่มค่าเริ่มต้นสำหรับพารามิเตอร์แต่ละรายการในแอป

    Node.js

    เพิ่มออบเจ็กต์ defaultConfig ภายในฟังก์ชันเทมเพลต initServerTemplate หรือ getServerTemplate ดังนี้

    const template = rc.initServerTemplate({
      defaultConfig: {
        model_name: "gemini-3.8-flash",
        generation_config: '{"stopSequences": [], "maxOutputTokens": 512}',
        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();
    

    Python

    เพิ่มพจนานุกรม default_config ภายในฟังก์ชันเทมเพลต init_server_template หรือ get_server_template ดังนี้

    template = remote_config.init_server_template({
      'default_config': {
        'model_name': "gemini-3.8-flash",
        'generation_config': '{"stopSequences": [], "maxOutputTokens": 512}',
        '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
    asyncio.run(template.load())
    

    อีกวิธีหนึ่งในการเริ่มต้นเทมเพลตคือการใช้ฟังก์ชัน get_server_template เพื่อดึงข้อมูลเทมเพลตเซิร์ฟเวอร์ที่จำเป็น คุณสามารถแปลงเทมเพลตนี้เป็นรูปแบบ JSON ได้โดยใช้ฟังก์ชัน template.to_json เทมเพลต JSON นี้สามารถจัดเก็บไว้ในเครื่อง และคุณสามารถเริ่มต้นเทมเพลต JSON นี้ในภายหลังได้โดยใช้ฟังก์ชัน init_server_template

    Java

    เพิ่มออบเจ็กต์ defaultConfig โดยใช้ KeysAndValues ภายในฟังก์ชัน getServerTemplate ดังนี้

    // Initialize default config using KeysAndValues
    KeysAndValues defaultConfig = new KeysAndValues.Builder()
                                      .put("rc_param_1", "default value 1")
                                      .put("rc_param_2", "default value 2")
                                      .build();
    ServerTemplate template = rc.getServerTemplate(defaultConfig);
    

    หรือจะส่งเทมเพลตที่แคชไว้เป็นค่าเริ่มต้นขณะเริ่มต้น Remote Config ก็ได้ ซึ่งจะใช้ได้แม้ว่าการเชื่อมต่อกับเซิร์ฟเวอร์ Remote Config จะถูกขัดจังหวะก็ตาม

    String templateDataJSON = "{}"; // add your default template as JSON
    ServerTemplate template = rc.serverTemplateBuilder()
                        .defaultConfig(defaultConfig)
                        .cachedTemplate(templateDataJSON)
                        .build();
    

    Go

    เพิ่มแผนที่ defaultConfig ภายในฟังก์ชันเทมเพลต InitServerTemplate หรือ GetServerTemplate ดังนี้

    // Initialize server-side Remote Config
    defaultConfig := make(map[string]any)
    defaultConfig["model_name"] = "gemini-3.8-flash"
    
    // Assume the type generationConfig has been defined
    defaultConfig["generation_config"] = &generationConfig{
        StopSequences:   []string{"I hope this helps"},
        MaxOutputTokens: 512,
    }
    
    defaultConfig["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!"
    
    templateDataJSON := ""
    template, err := remoteConfig.InitServerTemplate(defaultConfig, templateDataJSON)
    if err != nil {
        log.Fatalln("Error initializing server template:", err)
    }
    
    // Load Remote Config
    err = template.Load(ctx)
    if err != nil {
        log.Fatalln("Error fetching server template:", err)
    }
    
  3. หลังจากโหลดเทมเพลตแล้ว ให้ประเมินเทมเพลตเพื่อนำเข้าพารามิเตอร์และค่าจากเทมเพลต โดยทำดังนี้

    Node.js

    ใช้ template.evaluate():

    // Add template parameters to config
    const config = template.evaluate();
    

    Python

    ใช้ template.evaluate():

    # Add template parameters to config
    config = template.evaluate()
    

    Java

    ใช้ template.evaluate():

    // Add template parameters to config
    ServerConfig config = template.evaluate();
    

    Go

    ใช้ template.Evaluate() กับบริบทการประเมินที่ว่างเปล่าเมื่อไม่มีการใช้เงื่อนไข

    // An empty evaluation context means no conditions are applied.
    evaluationContext := make(map[string]any)
    config, err := template.Evaluate(evaluationContext)
    if err != nil {
        log.Fatalln("Error evaluating template:", err)
    }
    
  4. ไม่บังคับ: หากคุณตั้งค่าเงื่อนไขในเทมเพลต Remote Config ให้กำหนดและระบุค่าบริบทที่ต้องการ ดังนี้

    • หากใช้เงื่อนไขเปอร์เซ็นต์ ให้เพิ่มรหัสการสุ่ม (randomizationId, randomization_id หรือ randomizationID) ที่ต้องการใช้เพื่อประเมินเงื่อนไขภายในฟังก์ชันการประเมินเทมเพลต
    • หากใช้สัญญาณที่กำหนดเอง ให้กำหนดแอตทริบิวต์และค่าของแอตทริบิวต์ สัญญาณที่กำหนดเองพร้อมใช้งานใน Firebase Admin Node.js SDK v12.5.0 ขึ้นไป, Python SDK v6.7.0 ขึ้นไป, Java SDK v9.7.0 ขึ้นไป และ Go SDK v4.17.0 ขึ้นไป

    เช่น คุณอาจตั้งค่ารหัสการติดตั้ง Firebase หรือรหัสผู้ใช้เป็นรหัสการสุ่มเพื่อให้แน่ใจว่าผู้ใช้แต่ละรายที่ติดต่อเซิร์ฟเวอร์ของคุณได้รับการเพิ่มลงในกลุ่มที่สุ่มอย่างเหมาะสม, version เป็นสัญญาณที่กำหนดเองเพื่อกำหนดเป้าหมายเวอร์ชันไคลเอ็นต์ที่เฉพาะเจาะจง และ platform เป็นสัญญาณที่กำหนดเองเพื่อกำหนดเป้าหมายแพลตฟอร์มไคลเอ็นต์

    ดูข้อมูลเพิ่มเติมเกี่ยวกับเงื่อนไขได้ที่ประเภทกฎเงื่อนไข

    Node.js

    ส่งออบเจ็กต์บริบทการประเมินที่มี randomizationId และสัญญาณที่กำหนดเองไปยัง template.evaluate():

    // 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"
    });
    

    Python

    ส่งพจนานุกรมที่มี randomization_id และสัญญาณที่กำหนดเองไปยัง template.evaluate():

    # Add template parameters to `config`. Evaluates the
    # template and returns the parameter value assigned to
    # the group assigned to the {randomization_id} and version.
    config = template.evaluate({
      'randomization_id': "2ac93c28-c459-4760-963d-a3974ec26c04",
      'version': "1.0",
      'platform': "Android"
    })
    

    Java

    สร้างบริบท KeysAndValues ที่มี randomizationId และสัญญาณที่กำหนดเอง แล้วส่งไปยัง template.evaluate():

    // Add custom signals and randomizationId
    KeysAndValues context = new KeysAndValues.Builder()
                                    .put("custom_signal_key", "99")
                                    .put("randomizationId", "2ac93c28")
                                    .build();
    
    // Evaluate the template with signals
    ServerConfig config = template.evaluate(context);
    

    Go

    ส่งแผนที่บริบทการประเมินที่มี randomizationID และสัญญาณที่กำหนดเองไปยัง template.Evaluate():

    // Add template parameters to `config`. Evaluates the
    // template and returns the parameter value assigned to
    // the group assigned to the {randomizationID}, version, and platform.
    evaluationContext := make(map[string]any)
    evaluationContext["randomizationID"] = "2ac93c28-c459-4760-963d-a3974ec26c04"
    evaluationContext["version"] = "1.0"
    evaluationContext["platform"] = "Android"
    
    config, err := template.Evaluate(evaluationContext)
    if err != nil {
        log.Fatalln("Error evaluating template:", err)
    }
    
  5. จากนั้น ให้ดึงค่าพารามิเตอร์ที่ต้องการจากออบเจ็กต์การกำหนดค่าที่ประเมินแล้ว ใช้เมธอด Getter เพื่อแคสต์ค่าจาก Remote Config เป็นรูปแบบที่คาดไว้

    ตัวอย่างเช่น หากคุณติดตั้งใช้งาน Agent Platform บนเซิร์ฟเวอร์ และต้องการเปลี่ยนโมเดลและพารามิเตอร์โมเดล คุณอาจกำหนดค่าพารามิเตอร์สำหรับ model_name และ generation_config ต่อไปนี้เป็นเมธอด Getter ที่รองรับและตัวอย่างวิธีเข้าถึงค่า Remote Config สำหรับแต่ละแพลตฟอร์ม

    Node.js

    เมธอด Getter ที่รองรับมีดังนี้

    • บูลีน: getBoolean
    • ออบเจ็กต์: getValue
    • หมายเลข: getNumber
    • สตริง: getString

    // Replace defaults with values from Remote Config.
    const generationConfig =
      JSON.parse(
        config.getString('generation_config'));
    
    const is_ai_enabled = config.getBoolean('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}`;
    

    Python

    เมธอด Getter ที่รองรับมีดังนี้

    • บูลีน: get_bool
    • จำนวนเต็ม: get_int
    • ทศนิยม: get_float
    • สตริง: get_string
    • แหล่งที่มาของมูลค่า: get_value_source

    # Replace defaults with values from Remote Config.
    generation_config = json.loads(config.get_string('generation_config'))
    is_ai_enabled = config.get_bool('is_ai_enabled')
    model = config.get_string('model_name')
    
    # Generates a prompt comprised of the Remote Config
    # parameter and prepends it to the user prompt.
    prompt = f"{config.get_string('preamble_prompt')}{req.args.get('prompt')}"
    

    Java

    เมธอด Getter ที่รองรับมีดังนี้

    • บูลีน: getBoolean
    • สตริง: getString
    • เตียงคู่: getDouble
    • ยาว: getLong
    • แหล่งที่มาของมูลค่า: getValueSource

    // Get the model name
    String modelName = config.getString("model_name");
    // Get the origin of value assigned to param
    ValueSource modelNameSource = config.getValueSource("model_name");
    

    เมธอด getValueSource จะแสดงผล ValueSource ซึ่งระบุว่าแหล่งที่มาของค่าพารามิเตอร์คือ STATIC, REMOTE หรือ DEFAULT

    Go

    เมธอด Getter ที่รองรับมีดังนี้

    • บูลีน: GetBoolean
    • จำนวนเต็ม: GetInt
    • ทศนิยม: GetFloat
    • สตริง: GetString
    • แหล่งที่มาของมูลค่า: GetValueSource

    // Replace defaults with values from Remote Config.
    
    // Assume the type generationConfig has been defined
    var genConfig generationConfig
    err = json.Unmarshal([]byte(config.GetString("generation_config")), &genConfig)
    if err != nil {
        log.Fatalln("Error unmarshaling generation config:", err)
    }
    model := config.GetString("model_name")
    
    // Parameter created on the console
    isAIEnabled := config.GetBoolean("is_ai_enabled")
    
    // Generates a prompt comprised of the Remote Config
    // parameter and prepends it to the user prompt (assume it is extracted from the request body)
    userPrompt := "What is Remote Config?"
    prompt := fmt.Sprintf("%s %s", config.GetString("preamble_prompt"), userPrompt)
    
  6. หากเซิร์ฟเวอร์ทำงานเป็นเวลานาน ซึ่งตรงข้ามกับสภาพแวดล้อมแบบ Serverless ให้โหลดเทมเพลตซ้ำเป็นระยะๆ (เช่น ใช้ setInterval ใน Node.js หรือ java.util.Timer ใน Java) เพื่อยืนยันว่าคุณกำลังดึงเทมเพลตล่าสุดจากเซิร์ฟเวอร์ Remote Config

ขั้นตอนที่ 4: ตั้งค่าพารามิเตอร์เฉพาะเซิร์ฟเวอร์ใน Remote Config

จากนั้นสร้างเทมเพลต Remote Config ของเซิร์ฟเวอร์ แล้วกำหนดค่าพารามิเตอร์และค่าที่จะใช้ในแอป

วิธีสร้างเทมเพลต Remote Config สำหรับเซิร์ฟเวอร์โดยเฉพาะมีดังนี้

  1. ในคอนโซล Firebase ให้ไปที่หน้า DevOps และการมีส่วนร่วม > การกำหนดค่าระยะไกล > พารามิเตอร์

  2. จากตัวเลือกไคลเอ็นต์/เซิร์ฟเวอร์ที่ด้านบนของหน้า ให้เลือกเซิร์ฟเวอร์

  3. กำหนดพารามิเตอร์ Remote Config ที่มีชื่อและประเภทข้อมูลเหมือนกับพารามิเตอร์ที่คุณกำหนดไว้ในแอปและระบุค่า ค่าเหล่านี้จะลบล้างการกำหนดค่าเริ่มต้น (defaultConfig หรือ default_config) ที่คุณตั้งค่าไว้ในกำหนดค่าแอปพลิเคชันเซิร์ฟเวอร์เมื่อคุณดึงข้อมูลและประเมินเทมเพลต และกำหนดค่าเหล่านี้ให้กับตัวแปร

  4. หรือจะตั้งเงื่อนไขเพื่อใช้ค่ากับตัวอย่างแบบสุ่มของอินสแตนซ์หรือสัญญาณที่กำหนดเองที่คุณกำหนดไว้อย่างต่อเนื่องก็ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับเงื่อนไขได้ที่ประเภทกฎเงื่อนไข

  5. เมื่อเพิ่มพารามิเตอร์เสร็จแล้ว ให้คลิกเผยแพร่การเปลี่ยนแปลง

  6. ตรวจสอบการเปลี่ยนแปลง แล้วคลิกเผยแพร่การเปลี่ยนแปลงอีกครั้ง

ขั้นตอนที่ 5: ติดตั้งใช้งานด้วย Cloud Functions for Firebase หรือ Cloud Run

หากแอปพลิเคชันเซิร์ฟเวอร์ของคุณมีขนาดเล็กและขับเคลื่อนด้วยเหตุการณ์ คุณควรพิจารณาติดตั้งใช้งานโค้ดโดยใช้ Cloud Functions for Firebase ตัวอย่างเช่น สมมติว่าคุณมีแอปที่มีบทสนทนาของตัวละครที่ขับเคลื่อนโดย Generative AI API (เช่น Google AI หรือ Agent Platform) ในกรณีนี้ คุณสามารถโฮสต์ตรรกะการแสดงผล LLM ในฟังก์ชันที่แอปเรียกใช้ตามต้องการได้

หากคุณกำลังสร้างเว็บแอปที่แสดงผลบนเซิร์ฟเวอร์ App Hosting รองรับเฟรมเวิร์กเว็บยอดนิยม

หรืออาจพิจารณาใช้ Cloud Run หากต้องการทำให้แอปเซิร์ฟเวอร์ใช้งานได้ด้วย Cloud Run ให้ทำตามคู่มือเริ่มใช้งานฉบับย่อสำหรับภาษาของคุณ

ขั้นตอนถัดไป