Catch up on everything we announced at this year's Firebase Summit. Learn more

開始使用 Firebase 遠程配置

您可以使用 Firebase 遠程配置在您的應用中定義參數並在雲中更新它們的值,從而允許您在不分發應用更新的情況下修改應用的外觀和行為。

遠程配置庫用於存儲應用程序內的默認參數值、從遠程配置後端獲取更新的參數值,以及控制獲取的值何時可用於您的應用程序。要了解更多信息,請參閱遠程配置加載策略

本指南將引導您上手的步驟,並提供了一些示例代碼,所有這些都可以從克隆或下載火力/快速啟動-團結的GitHub庫。

將遠程配置添加到您的應用程序

在可以使用遠程配置,您需要:

  • 註冊您的 Unity 項目並將其配置為使用 Firebase。

    • 如果您的 Unity 項目已經使用 Firebase,那麼它已經為 Firebase 註冊和配置。

    • 如果你沒有一個統一的項目,你可以下載一個示例應用程序

  • 添加火力地堡統一SDK (具體FirebaseRemoteConfig.unitypackage )到您的統一項目。

注意添加火力地堡到您的統一項目涉及雙方的任務火力地堡控制台並在打開的統一的項目(例如,您從控制台下載火力地堡的配置文件,然後將其移動到您的統一項目)。

設置應用內默認參數值

您可以在遠程配置對像中設置默認參數值,以便在沒有從後端檢索到其他值時使用。這允許您的應用程序在連接到遠程配置後端之前按預期運行。

為此,請創建一個字符串字典,並使用表示您要添加的默認值的鍵/值對填充它。 (非字符串屬性將被轉換為所述屬性的類型時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 => {

獲取要在您的應用程序中使用的參數值

現在您可以從遠程配置對象獲取參數值。如果您在 Remote Config 後端設置值,獲取它們,然後激活它們,則這些值可用於您的應用程序。否則,你就會得到配置為使用在應用程序的參數值SetDefaultsAsync()

要獲得這些值,使用GetValue()提供參數鍵作為參數。這將返回一個ConfigValue ,其具有的屬性的值成各種基本類型轉換。

在 Firebase 控制台中連接您的應用

火力地堡控制台,您的應用程序添加到您的火力地堡項目。

設置參數值

  1. 火力地堡控制台,打開您的項目。
  2. 從菜單中選擇遠程配置,查看遠程配置儀表板。
  3. 定義與您在應用程序中定義的參數同名的參數。對於每個參數,您可以設置默認值(最終會覆蓋應用內默認值)和條件值。要了解更多信息,請參閱遠程配置參數和條件

獲取並激活值(根據需要)

為了從遠程配置後端取的參數值,調用FetchAsync()方法。您在後端設置的任何值都將被提取並緩存在遠程配置對像中。

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

通過數值取FetchAsync()在本地緩存當抓取完成,但不提供,直到ActivateFetched()被調用。由於FetchAsync()異步執行,這樣就可以確保新值不適用中等計算,或在其他時間,可能會出現問題或奇怪的行為。

(可選)啟用開發者模式

為了讓開發者模式,它可以在開發過程中用於禁用限制,可以使用FirebaseRemoteConfig.Setting屬性,設置新的ConfigSettingsIsDeveloperMode設置為true。

下一步

如果你還沒有準備好,探索遠程配置使用情況,並看看一些關鍵概念和先進的戰略文件,其中包括: