از Remote Config در محیط های سرور استفاده کنید

Firebase Remote Config پیکربندی سمت سرور با استفاده از SDK های مدیریت فایربیس برای Node.js (نسخه ۱۲.۱.۰+)، پایتون (نسخه ۶.۷.۰+)، جاوا (نسخه ۹.۷.۰+) و Go (نسخه ۴.۱۷.۰+) پشتیبانی می‌کند.

این قابلیت به شما امکان می‌دهد تا به صورت پویا رفتار و پیکربندی برنامه‌های سمت سرور را با استفاده از Remote Config مدیریت کنید. این شامل پیاده‌سازی‌های بدون سرور مانند Cloud Functions for Firebase و سرویس‌های کانتینری در Cloud Run .

برخلاف SDK های کلاینت فایربیس که پیکربندی خاص کلاینت را از الگوی Remote Config دریافت می‌کنند، SDK سمت سرور Remote Config یک الگوی کامل Remote Config را از فایربیس دانلود یا دریافت می‌کند. سپس سرور شما می‌تواند الگو را با هر درخواست ورودی ارزیابی کند و از منطق خود برای ارائه یک پاسخ سفارشی با تأخیر بسیار کم استفاده کند. می‌توانید از شرط‌ها برای کنترل و سفارشی‌سازی پاسخ‌ها بر اساس درصدهای تصادفی و ویژگی‌های کلاینت تعریف شده در سیگنال‌های سفارشی استفاده کنید.

با Remote Config سمت سرور، می‌توانید:

  • پارامترهای پیکربندی را برای برنامه‌هایی که روی سرور شما اجرا می‌شوند یا از طریق آن قابل دسترسی هستند، تعریف کنید و مواردی مانند پیکربندی از راه دور پارامترها و اعلان‌های مدل هوش مصنوعی و سایر ادغام‌ها را برای اطمینان از ایمن ماندن کلیدهای API خود، امکان‌پذیر سازید.
  • پارامترها را به صورت پویا در پاسخ به تغییرات در محیط یا سایر تغییرات برنامه، مانند به‌روزرسانی پارامترهای LLM و نقاط پایانی مدل، تنظیم کنید.
  • با به‌روزرسانی از راه دور APIهایی که سرور شما فراخوانی می‌کند، هزینه‌ها را کنترل کنید.
  • پیکربندی‌های سفارشی را در لحظه برای کلاینت‌هایی که به سرور شما دسترسی دارند، ایجاد کنید.
  • ثبت کنید که کدام کلاینت‌ها مقدار پارامتر را دریافت کرده‌اند و از آن در Cloud Functions for Firebase به عنوان بخشی از یک سیستم تأیید حق استفاده کنید.

شما می‌توانید Remote Config سمت سرور را روی Cloud Run ، Cloud Functions for Firebase یا محیط‌های سرور خود-میزبان مستقر کنید.

قبل از اینکه شروع کنی

برای ایجاد یک پروژه Firebase، تنظیم یک حساب کاربری سرویس و افزودن Firebase Admin SDK به سرور خود، دستورالعمل‌های موجود در بخش «افزودن Firebase Admin SDK به سرور» را دنبال کنید. مطمئن شوید که از نسخه پشتیبانی‌شده‌ی Admin SDK برای پلتفرم خود استفاده می‌کنید:

  • Node.js : فایربیس ادمین Node.js SDK نسخه ۱۲.۱.۰+
  • Python : Firebase Admin Python SDK v6.7.0+
  • جاوا : فایربیس ادمین جاوا SDK نسخه ۹.۷.۰+
  • برو : فایربیس مدیریت برو SDK نسخه ۴.۱۷.۰+

مرحله 1: مقداردهی اولیه Firebase Admin SDK و تأیید درخواست‌های API

وقتی Admin SDK را بدون هیچ پارامتری مقداردهی اولیه می‌کنید، SDK از اعتبارنامه‌های پیش‌فرض برنامه گوگل استفاده می‌کند و گزینه‌ها را از متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS می‌خواند. SDK را مقداردهی اولیه کنید و Remote Config را برای پلتفرم خود پیکربندی کنید:

نود جی اس

initializeApp و getRemoteConfig را وارد کنید، سپس نمونه برنامه Firebase خود را مقداردهی اولیه کنید:

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

// Initialize Firebase
const firebaseApp = initializeApp();

پایتون

firebase_admin را وارد کنید (به همراه asyncio و json برای بارگذاری ناهمزمان قالب و تجزیه JSON)، سپس برنامه را مقداردهی اولیه کنید:

import firebase_admin
import asyncio
import json

firebase_admin.initialize_app()

جاوا

SDK مربوط به محیط مدیریت فایربیس را با استفاده FirebaseOptions و اطلاعات حساب کاربری سرویس خود، مقداردهی اولیه کنید:

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

برو

برنامه 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)
}

مرحله ۲: مقادیر پیش‌فرض پارامترها را برای برنامه سرور خود شناسایی کنید

متغیرهایی را در برنامه خود که می‌خواهید به صورت پویا با Remote Config به‌روزرسانی شوند، شناسایی کنید. سپس، در نظر بگیرید که کدام متغیرها باید به طور پیش‌فرض در برنامه شما تنظیم شوند و مقادیر پیش‌فرض آنها باید چه باشند. این تضمین می‌کند که برنامه شما حتی اگر اتصال آن به سرور Remote Config backend قطع شود، با موفقیت اجرا می‌شود.

برای مثال، اگر در حال نوشتن یک برنامه‌ی سرور هستید که یک تابع هوش مصنوعی مولد را مدیریت می‌کند، می‌توانید یک نام مدل پیش‌فرض، مقدمه‌ی اعلان و یک پیکربندی هوش مصنوعی مولد مانند موارد زیر تنظیم کنید:

نام پارامتر توضیحات نوع مقدار پیش‌فرض
model_name نام API مدل رشته gemini-2.0-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 پارامترهایی که باید به مدل ارسال شوند جی‌سون {"stopSequences": ["I hope this helps"], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}

مرحله 3: برنامه سرور خود را پیکربندی کنید

پس از اینکه پارامترهایی را که می‌خواهید با Remote Config استفاده کنید تعیین کردید، برنامه خود را طوری پیکربندی کنید که مقادیر پیش‌فرض را تنظیم کند، الگوی Remote Config مخصوص سرور را دریافت کند و مقادیر آن را ارزیابی کند.

  1. به الگوی سرور Remote Config دسترسی پیدا کرده و آن را بارگذاری کنید.

    نود جی اس

    قالب سرور را با استفاده از initServerTemplate() مقداردهی اولیه کنید و load() را برای دریافت قالب از backend فراخوانی کنید:

    // 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();
    

    پایتون

    قالب سرور را با استفاده از init_server_template() مقداردهی اولیه کنید و load() را برای دریافت قالب از backend فراخوانی کنید:

    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())
    

    از طرف دیگر، اگر از پایتون با Cloud Functions for Firebase استفاده می‌کنید، می‌توانید از تابع get_server_template() ناهمزمان برای مقداردهی اولیه و بارگذاری الگو در یک مرحله استفاده کنید:

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

    جاوا

    کلاینت Remote Config سمت سرور را با استفاده از FirebaseRemoteConfig.getInstance() مقداردهی اولیه کنید:

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

    از طرف دیگر، اگر از جاوا با Cloud Functions for Firebase استفاده می‌کنید، می‌توانید getServerTemplate() برای مقداردهی اولیه و بارگذاری الگو در یک مرحله استفاده کنید:

    ServerTemplate template = rc.getServerTemplate();
    

    برو

    قالب سرور را با استفاده از InitServerTemplate() مقداردهی اولیه کنید و Load() را برای دریافت قالب از backend فراخوانی کنید:

    // 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 backend با موفقیت اجرا می‌شود، برای هر پارامتر در برنامه خود مقادیر پیش‌فرض اضافه کنید.

    نود جی اس

    یک شیء defaultConfig را درون تابع الگوی initServerTemplate یا getServerTemplate خود اضافه کنید:

    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();
    

    پایتون

    یک دیکشنری default_config درون تابع الگوی init_server_template یا get_server_template خود اضافه کنید:

    template = remote_config.init_server_template({
      'default_config': {
        '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
    asyncio.run(template.load())
    

    روش دیگری که می‌توانید یک الگو را مقداردهی اولیه کنید، استفاده از تابع get_server_template برای بازیابی الگوی سرور مورد نیاز است. می‌توانید این الگو را با استفاده از تابع template.to_json به فرمت JSON تبدیل کنید. این الگوی JSON می‌تواند به صورت محلی ذخیره شود و متعاقباً می‌توانید این الگوی JSON را با استفاده از تابع init_server_template مقداردهی اولیه کنید.

    جاوا

    یک شیء 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();
    

    برو

    یک نقشه defaultConfig را درون تابع الگوی InitServerTemplate یا GetServerTemplate خود اضافه کنید:

    // Initialize server-side Remote Config
    defaultConfig := make(map[string]any)
    defaultConfig["model_name"] = "gemini-2.0-flash"
    
    // Assume the type generationConfig has been defined
    defaultConfig["generation_config"] = &generationConfig{
        StopSequences:   []string{"I hope this helps"},
        Temperature:     0.7,
        MaxOutputTokens: 512,
        TopP:            0.9,
        TopK:            30,
    }
    
    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. پس از بارگذاری قالب، قالب را برای وارد کردن پارامترها و مقادیر از قالب ارزیابی کنید:

    نود جی اس

    از template.evaluate() استفاده کنید:

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

    پایتون

    از template.evaluate() استفاده کنید:

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

    جاوا

    از template.evaluate() استفاده کنید:

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

    برو

    استفاده از 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 خود شرط‌هایی تعیین کرده‌اید، مقادیر context مورد نظر خود را تعریف و ارائه دهید:

    • اگر از شرایط درصدی استفاده می‌کنید، شناسه تصادفی‌سازی ( 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 به عنوان یک سیگنال سفارشی برای هدف قرار دادن پلتفرم‌های کلاینت اضافه می‌شود.

    برای اطلاعات بیشتر در مورد شرط‌ها، به انواع قانون شرط مراجعه کنید.

    نود جی اس

    یک شیء زمینه ارزیابی شامل 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"
    });
    

    پایتون

    یک دیکشنری شامل 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"
    })
    

    جاوا

    یک زمینه 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);
    

    برو

    یک نقشه زمینه ارزیابی شامل 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 روی سرور خود هستید و می‌خواهید مدل و پارامترهای مدل را تغییر دهید، می‌توانید پارامترهایی را برای model_name و generation_config پیکربندی کنید. در اینجا متدهای getter پشتیبانی‌شده و مثالی از نحوه دسترسی به مقادیر Remote Config برای هر پلتفرم آمده است:

    نود جی اس

    متدهای دریافت‌کننده پشتیبانی‌شده:

    • بولی: 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}`;
    

    پایتون

    متدهای دریافت‌کننده پشتیبانی‌شده:

    • بولی: 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')}"
    

    جاوا

    متدهای دریافت‌کننده پشتیبانی‌شده:

    • بولی: 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 است.

    برو

    متدهای دریافت‌کننده پشتیبانی‌شده:

    • بولی: 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. اگر سرور شما برخلاف یک محیط بدون سرور، مدت زیادی در حال اجرا است، به صورت دوره‌ای قالب را مجدداً بارگذاری کنید (برای مثال، با استفاده setInterval در Node.js یا java.util.Timer در جاوا) تا تأیید کنید که جدیدترین قالب را از سرور Remote Config دریافت می‌کنید.

مرحله ۴: تنظیم مقادیر پارامترهای مختص سرور در Remote Config

در مرحله بعد، یک الگوی Remote Config سرور ایجاد کنید و پارامترها و مقادیر را برای استفاده در برنامه خود پیکربندی کنید.

در اینجا نحوه ایجاد یک الگوی Remote Config مخصوص سرور آورده شده است:

  1. در کنسول Firebase ، به صفحه DevOps & Engagement > Remote Config > Parameters بروید.

  2. از انتخابگر کلاینت/سرور در بالای صفحه، سرور را انتخاب کنید.

  3. پارامترهای Remote Config را با همان نام‌ها و انواع داده‌ای که در برنامه خود تعریف کرده‌اید، تعریف کنید و مقادیر را ارائه دهید. این مقادیر، پیکربندی پیش‌فرض ( defaultConfig یا default_config ) که در پیکربندی برنامه سرور خود تنظیم کرده‌اید را هنگام واکشی و ارزیابی الگو و اختصاص این مقادیر به متغیرهای خود، لغو می‌کنند.

  4. به صورت اختیاری، می‌توانید شرایطی را تنظیم کنید تا مقادیر به طور مداوم بر روی یک نمونه تصادفی از نمونه‌ها یا سیگنال‌های سفارشی که تعریف می‌کنید اعمال شوند. برای اطلاعات بیشتر در مورد شرایط، به انواع قوانین شرایط مراجعه کنید.

  5. وقتی افزودن پارامترها تمام شد، روی انتشار تغییرات کلیک کنید.

  6. تغییرات را مرور کنید و دوباره روی انتشار تغییرات کلیک کنید.

مرحله 5: با استفاده از Cloud Functions for Firebase یا Cloud Run مستقر شوید

اگر برنامه سرور شما سبک و رویدادمحور است، باید استقرار کد خود را با استفاده Cloud Functions for Firebase در نظر بگیرید. به عنوان مثال، فرض کنید برنامه‌ای دارید که شامل دیالوگ‌های کاراکتری است که توسط یک API هوش مصنوعی مولد (مثلاً Google AI یا Agent Platform ) پشتیبانی می‌شود. در این حالت، می‌توانید منطق سرویس LLM خود را در تابعی که برنامه شما در صورت تقاضا فراخوانی می‌کند، میزبانی کنید.

اگر در حال ساخت یک برنامه وب رندر شده توسط سرور هستید، App Hosting از فریم‌ورک‌های وب محبوب پشتیبانی می‌کند.

در غیر این صورت، می‌توانید Cloud Run در نظر بگیرید. برای استقرار برنامه سرور خود با Cloud Run ، راهنمای شروع سریع مربوط به زبان خود را دنبال کنید:

برای اطلاعات بیشتر در مورد بهترین موارد استفاده از Cloud Run و Cloud Functions for Firebase ، به Cloud Functions for Firebase در مقابل Cloud Run : چه زمانی از یکی به جای دیگری استفاده کنیم، مراجعه کنید.

مراحل بعدی