با Firebase Remote Config شروع کنید


شما می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید.

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

این راهنما شما را در مراحل شروع به کار راهنمایی می کند و نمونه کدی را ارائه می دهد که همگی برای شبیه سازی یا دانلود از مخزن firebase/quickstart-unity GitHub در دسترس هستند.

مرحله 1: Remote Config به برنامه خود اضافه کنید

قبل از اینکه بتوانید از Remote Config استفاده کنید، باید:

  • پروژه Unity خود را ثبت کرده و آن را برای استفاده از Firebase پیکربندی کنید.

    • اگر پروژه Unity شما قبلاً از Firebase استفاده می‌کند، پس از قبل برای Firebase ثبت و پیکربندی شده است.

    • اگر پروژه یونیتی ندارید، می توانید یک برنامه نمونه دانلود کنید.

  • Firebase Unity SDK (به طور خاص، FirebaseRemoteConfig.unitypackage ) را به پروژه Unity خود اضافه کنید.

توجه داشته باشید که افزودن Firebase به پروژه Unity شما شامل وظایفی در کنسول Firebase و پروژه Unity باز شما می شود (به عنوان مثال، فایل های پیکربندی Firebase را از کنسول دانلود می کنید، سپس آنها را به پروژه Unity خود منتقل می کنید).

مرحله 2: مقادیر پارامترهای پیش فرض درون برنامه را تنظیم کنید

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

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

(هنگامی که SetDefaultsAsync() فراخوانی شود، ویژگی های غیر رشته ای به نوع خاصیت تبدیل می شوند).

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

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

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

برای دریافت این مقادیر، از GetValue() استفاده کنید و کلید پارامتر را به عنوان آرگومان ارائه کنید. این یک ConfigValue را برمی‌گرداند که دارای ویژگی‌هایی برای تبدیل مقدار به انواع پایه مختلف است.

مرحله 4: مقادیر پارامتر را تنظیم کنید

  1. در کنسول Firebase ، پروژه خود را باز کنید.
  2. Remote Config از منو انتخاب کنید تا داشبورد Remote Config را مشاهده کنید.
  3. پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر، می توانید یک مقدار پیش فرض (که در نهایت مقدار پیش فرض درون برنامه را لغو می کند) و مقادیر شرطی تنظیم کنید. برای کسب اطلاعات بیشتر، به پارامترها و شرایط Remote Config مراجعه کنید.

مرحله 5: واکشی و فعال کردن مقادیر (در صورت نیاز)

برای واکشی مقادیر پارامتر از باطن Remote Config ، متد FetchAsync() را فراخوانی کنید. هر مقداری که در باطن تنظیم می‌کنید در شی Remote Config واکشی و ذخیره می‌شود.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

در کد بالا، FetchComplete متدی است که امضای آن با پارامترهای یکی از اضافه بارهای ContinueWithOnMainThread() مطابقت دارد.

در کد نمونه زیر، متد FetchComplete به وظیفه قبلی ( fetchTask ) منتقل می‌شود، که به FetchComplete اجازه می‌دهد تعیین کند که آیا تمام شده است یا خیر. کد از Info.LastFetchStatus استفاده می کند تا مشخص کند که آیا پایان نیز موفقیت آمیز بوده است یا خیر. در این صورت، مقادیر پارامتر Remote Config سپس با استفاده از ActivateAsync() فعال می شوند.

private void FetchComplete(Task fetchTask) {
  if (!fetchTask.IsCompleted) {
    Debug.LogError("Retrieval hasn't finished.");
    return;
  }

  var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
  var info = remoteConfig.Info;
  if(info.LastFetchStatus != LastFetchStatus.Success) {
    Debug.LogError($"{nameof(FetchComplete)} was unsuccessful\n{nameof(info.LastFetchStatus)}: {info.LastFetchStatus}");
    return;
  }

  // Fetch successful. Parameter values must be activated to use.
  remoteConfig.ActivateAsync()
    .ContinueWithOnMainThread(
      task => {
        Debug.Log($"Remote data loaded and ready for use. Last fetch time {info.FetchTime}.");
    });
}

مقادیری که با استفاده از FetchAsync() واکشی می شوند، پس از تکمیل واکشی به صورت محلی ذخیره می شوند، اما تا زمانی که ActivateAsync() فراخوانی نشود، در دسترس قرار نمی گیرند. این به شما امکان می دهد اطمینان حاصل کنید که مقادیر جدید در اواسط محاسبه اعمال نمی شوند، یا در زمان های دیگر که ممکن است باعث ایجاد مشکلات یا رفتار عجیب شود.

مرحله ۶: به‌روزرسانی‌ها را در زمان واقعی گوش دهید

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

به‌روزرسانی‌های بی‌درنگ توسط Firebase Unity SDK نسخه 11.0.0 و بالاتر برای پلتفرم‌های اندروید و اپل پشتیبانی می‌شوند.

  1. در برنامه خود، یک OnConfigUpdateListener اضافه کنید تا شروع به شنیدن به‌روزرسانی‌ها کند و به‌طور خودکار مقادیر پارامترهای جدید یا به‌روزرسانی‌شده را واکشی کند. سپس، یک ConfigUpdateListenerEventHandler برای پردازش رویدادهای به روز رسانی ایجاد کنید. مثال زیر به‌روزرسانی‌ها را گوش می‌دهد و از مقادیر تازه واکشی شده برای نمایش یک پیام خوش‌آمدگویی به‌روز استفاده می‌کند.
// Invoke the listener.
void Start()
{
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
    += ConfigUpdateListenerEventHandler;
}

// Handle real-time Remote Config events.
void ConfigUpdateListenerEventHandler(
   object sender, Firebase.RemoteConfig.ConfigUpdateEventArgs args) {
  if (args.Error != Firebase.RemoteConfig.RemoteConfigError.None) {
    Debug.Log(String.Format("Error occurred while listening: {0}", args.Error));
    return;
  }

  Debug.Log("Updated keys: " + string.Join(", ", args.UpdatedKeys));
  // Activate all fetched values and then display a welcome message.
  remoteConfig.ActivateAsync().ContinueWithOnMainThread(
    task => {
        DisplayWelcomeMessage();
    });
}

// Stop the listener.
void OnDestroy() {
    Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
      -= ConfigUpdateListenerEventHandler;
}

دفعه بعد که نسخه جدیدی از Remote Config خود را منتشر می کنید، دستگاه هایی که برنامه شما را اجرا می کنند و به تغییرات گوش می دهند، کنترل کننده تکمیل را صدا می کنند.

مراحل بعدی

اگر قبلاً این کار را نکرده اید ، موارد استفاده Remote Config را کاوش کنید و به برخی از مفاهیم کلیدی و مستندات استراتژی های پیشرفته ، از جمله:

،


برای تعریف پارامترها در برنامه خود می توانید از Firebase Remote Config استفاده کنید و مقادیر آنها را در ابر به روز کنید و به شما امکان می دهد بدون توزیع به روزرسانی برنامه ، ظاهر و رفتار برنامه خود را تغییر دهید.

از کتابخانه Remote Config برای ذخیره مقادیر پارامتر پیش فرض درون برنامه ، واکشی مقادیر پارامتر به روز شده را از پشت Remote Config استفاده می کند و هنگامی که مقادیر واکشی در دسترس برنامه شما قرار می گیرد ، کنترل می شود. برای کسب اطلاعات بیشتر ، به استراتژی های بارگذاری پیکربندی از راه دور مراجعه کنید.

این راهنما شما را از طریق مراحل شروع می کند و برخی از کد های نمونه را ارائه می دهد ، که همه آنها برای کلون یا بارگیری از مخزن GitHub Firebase/QuickStart-Unity در دسترس است.

مرحله 1: Remote Config به برنامه خود اضافه کنید

قبل از استفاده از Remote Config ، باید:

  • پروژه وحدت خود را ثبت کرده و آن را برای استفاده از Firebase پیکربندی کنید.

    • اگر پروژه Unity شما قبلاً از Firebase استفاده می‌کند، پس از قبل برای Firebase ثبت و پیکربندی شده است.

    • اگر پروژه وحدت ندارید ، می توانید یک برنامه نمونه را بارگیری کنید.

  • Firebase Unity SDK (به طور خاص ، FirebaseRemoteConfig.unitypackage ) را به پروژه وحدت خود اضافه کنید.

توجه داشته باشید که اضافه کردن Firebase به پروژه وحدت شما شامل وظایف هم در کنسول Firebase و هم در پروژه Unity Open Unity شما است (به عنوان مثال ، پرونده های پیکربندی Firebase را از کنسول بارگیری می کنید ، سپس آنها را به پروژه وحدت خود منتقل می کنید).

مرحله 2: مقادیر پارامتر پیش فرض درون برنامه را تنظیم کنید

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

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

(هنگامی که SetDefaultsAsync() خوانده می شود ، خصوصیات غیر رشته ای به نوع ویژگی تبدیل می شوند.

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

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

اکنون می توانید مقادیر پارامتر را از شیء Remote Config دریافت کنید. اگر مقادیر را در پشتی Remote Config تنظیم کنید ، آنها را واگذار کرده و سپس آنها را فعال کنید ، این مقادیر در دسترس برنامه شما هستند. در غیر این صورت ، مقادیر پارامتر درون برنامه را با استفاده از SetDefaultsAsync() پیکربندی می کنید.

برای به دست آوردن این مقادیر ، از GetValue() استفاده کنید ، و کلید پارامتر را به عنوان یک آرگومان ارائه دهید. این یک ConfigValue را برمی گرداند ، که دارای خواصی برای تبدیل مقدار به انواع مختلف پایه است.

مرحله 4: مقادیر پارامتر را تنظیم کنید

  1. در کنسول Firebase ، پروژه خود را باز کنید.
  2. برای مشاهده داشبورد Remote Config Remote Config از منو انتخاب کنید.
  3. پارامترها را با همان نام هایی با پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر ، می توانید یک مقدار پیش فرض (که در نهایت مقدار پیش فرض درون برنامه را نادیده می گیرد) و مقادیر شرطی تنظیم کنید. برای کسب اطلاعات بیشتر ، به پارامترها و شرایط Remote Config مراجعه کنید.

Step 5: Fetch and activate values (as needed)

To fetch parameter values from the Remote Config backend, call the FetchAsync() method. Any values that you set on the backend are fetched and cached in the Remote Config object.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

In the code above, FetchComplete is a method whose signature matches the parameters of one of the overloads of ContinueWithOnMainThread() .

In the sample code below, the FetchComplete method is passed the previous task ( fetchTask ), which allows FetchComplete to determine whether it finished. The code uses Info.LastFetchStatus to then determine whether the finish was also successful. If so, Remote Config parameter values are then activated using ActivateAsync() .

private void FetchComplete(Task fetchTask) {
  if (!fetchTask.IsCompleted) {
    Debug.LogError("Retrieval hasn't finished.");
    return;
  }

  var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
  var info = remoteConfig.Info;
  if(info.LastFetchStatus != LastFetchStatus.Success) {
    Debug.LogError($"{nameof(FetchComplete)} was unsuccessful\n{nameof(info.LastFetchStatus)}: {info.LastFetchStatus}");
    return;
  }

  // Fetch successful. Parameter values must be activated to use.
  remoteConfig.ActivateAsync()
    .ContinueWithOnMainThread(
      task => {
        Debug.Log($"Remote data loaded and ready for use. Last fetch time {info.FetchTime}.");
    });
}

Values fetched using FetchAsync() are cached locally when the fetch completes, but are not made available until ActivateAsync() is invoked. This lets you ensure that the new values are not applied mid-calculation, or at other times that might cause problems or strange behavior.

Step 6: Listen for updates in real time

After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.

Real-time updates are supported by the Firebase Unity SDK v11.0.0+ and higher for Android and Apple platforms.

  1. In your app, add an OnConfigUpdateListener to start listening for updates and automatically fetch any new or updated parameter values. Then, create a ConfigUpdateListenerEventHandler to process update events. The following example listens for updates and uses the newly fetched values to display an updated welcome message.
// Invoke the listener.
void Start()
{
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
    += ConfigUpdateListenerEventHandler;
}

// Handle real-time Remote Config events.
void ConfigUpdateListenerEventHandler(
   object sender, Firebase.RemoteConfig.ConfigUpdateEventArgs args) {
  if (args.Error != Firebase.RemoteConfig.RemoteConfigError.None) {
    Debug.Log(String.Format("Error occurred while listening: {0}", args.Error));
    return;
  }

  Debug.Log("Updated keys: " + string.Join(", ", args.UpdatedKeys));
  // Activate all fetched values and then display a welcome message.
  remoteConfig.ActivateAsync().ContinueWithOnMainThread(
    task => {
        DisplayWelcomeMessage();
    });
}

// Stop the listener.
void OnDestroy() {
    Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
      -= ConfigUpdateListenerEventHandler;
}

The next time you publish a new version of your Remote Config , devices that are running your app and listening for changes will call the completion handler.

مراحل بعدی

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including:

،


You can use Firebase Remote Config to define parameters in your app and update their values in the cloud, allowing you to modify the appearance and behavior of your app without distributing an app update.

The Remote Config library is used to store in-app default parameter values, fetch updated parameter values from the Remote Config backend, and control when fetched values are made available to your app. To learn more, see Remote Config loading strategies .

This guide walks you through the steps to get started and provides some sample code, all of which is available to clone or download from the firebase/quickstart-unity GitHub repository.

Step 1: Add Remote Config to your app

Before you can use Remote Config , you need to:

  • Register your Unity project and configure it to use Firebase.

    • اگر پروژه Unity شما قبلاً از Firebase استفاده می‌کند، پس از قبل برای Firebase ثبت و پیکربندی شده است.

    • If you don't have a Unity project, you can download a sample app .

  • Add the Firebase Unity SDK (specifically, FirebaseRemoteConfig.unitypackage ) to your Unity project.

Note that adding Firebase to your Unity project involves tasks both in the Firebase console and in your open Unity project (for example, you download Firebase config files from the console, then move them into your Unity project).

Step 2: Set in-app default parameter values

You can set in-app default parameter values in the Remote Config object, so that your app behaves as intended before it connects to the Remote Config backend, and so that default values are available if none are set in the backend.

To do this, create a string dictionary, and populate it with key/value pairs representing the defaults you want to add. If you have already configured Remote Config backend parameter values, you can download a file that contains these key/value pairs and use it to construct your string dictionary. For more information, see Download Remote Config template defaults .

(Non-string properties will be converted to the property's type when SetDefaultsAsync() is called).

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

Step 3: Get parameter values to use in your app

Now you can get parameter values from the Remote Config object. If you set values in the Remote Config backend, fetched them, and then activated them, those values are available to your app. Otherwise, you get the in-app parameter values configured using SetDefaultsAsync() .

To get these values, use GetValue() , providing the parameter key as an argument. This returns a ConfigValue , which has properties to convert the value into various base types.

Step 4: Set parameter values

  1. In the Firebase console , open your project.
  2. Select Remote Config from the menu to view the Remote Config dashboard.
  3. Define parameters with the same names as the parameters that you defined in your app. For each parameter, you can set a default value (which will eventually override the in-app default value) and conditional values. To learn more, see Remote Config parameters and conditions .

Step 5: Fetch and activate values (as needed)

To fetch parameter values from the Remote Config backend, call the FetchAsync() method. Any values that you set on the backend are fetched and cached in the Remote Config object.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

In the code above, FetchComplete is a method whose signature matches the parameters of one of the overloads of ContinueWithOnMainThread() .

In the sample code below, the FetchComplete method is passed the previous task ( fetchTask ), which allows FetchComplete to determine whether it finished. The code uses Info.LastFetchStatus to then determine whether the finish was also successful. If so, Remote Config parameter values are then activated using ActivateAsync() .

private void FetchComplete(Task fetchTask) {
  if (!fetchTask.IsCompleted) {
    Debug.LogError("Retrieval hasn't finished.");
    return;
  }

  var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
  var info = remoteConfig.Info;
  if(info.LastFetchStatus != LastFetchStatus.Success) {
    Debug.LogError($"{nameof(FetchComplete)} was unsuccessful\n{nameof(info.LastFetchStatus)}: {info.LastFetchStatus}");
    return;
  }

  // Fetch successful. Parameter values must be activated to use.
  remoteConfig.ActivateAsync()
    .ContinueWithOnMainThread(
      task => {
        Debug.Log($"Remote data loaded and ready for use. Last fetch time {info.FetchTime}.");
    });
}

Values fetched using FetchAsync() are cached locally when the fetch completes, but are not made available until ActivateAsync() is invoked. This lets you ensure that the new values are not applied mid-calculation, or at other times that might cause problems or strange behavior.

Step 6: Listen for updates in real time

After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.

Real-time updates are supported by the Firebase Unity SDK v11.0.0+ and higher for Android and Apple platforms.

  1. In your app, add an OnConfigUpdateListener to start listening for updates and automatically fetch any new or updated parameter values. Then, create a ConfigUpdateListenerEventHandler to process update events. The following example listens for updates and uses the newly fetched values to display an updated welcome message.
// Invoke the listener.
void Start()
{
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
    += ConfigUpdateListenerEventHandler;
}

// Handle real-time Remote Config events.
void ConfigUpdateListenerEventHandler(
   object sender, Firebase.RemoteConfig.ConfigUpdateEventArgs args) {
  if (args.Error != Firebase.RemoteConfig.RemoteConfigError.None) {
    Debug.Log(String.Format("Error occurred while listening: {0}", args.Error));
    return;
  }

  Debug.Log("Updated keys: " + string.Join(", ", args.UpdatedKeys));
  // Activate all fetched values and then display a welcome message.
  remoteConfig.ActivateAsync().ContinueWithOnMainThread(
    task => {
        DisplayWelcomeMessage();
    });
}

// Stop the listener.
void OnDestroy() {
    Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
      -= ConfigUpdateListenerEventHandler;
}

The next time you publish a new version of your Remote Config , devices that are running your app and listening for changes will call the completion handler.

مراحل بعدی

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: