Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

在Android上開始使用Firebase Remote Config

您可以使用Firebase Remote Config在您的應用程序中定義參數並在雲中更新它們的值,從而允許您在不分發應用程序更新的情況下修改應用程序的外觀和行為。本指南將引導您逐步入門,並提供一些示例代碼,所有示例代碼均可從firebase / quickstart-android GitHub存儲庫中克隆或下載。

將Firebase和Remote Config SDK添加到您的應用程序

  1. 如果尚未將Firebase添加到您的Android項目中

  2. 對於“遠程配置”,需要有Google Analytics(分析)才能有條件地將應用實例定位到用戶屬性,受眾群體和Firebase預測。確保在項目中啟用Google Analytics(分析)

  3. 將Remote Config Android庫的依賴項添加到模塊(應用程序級)Gradle文件(通常為app/build.gradle )。

    另外,作為設置Google Analytics(分析)的一部分,您需要將適用於Google Analytics(分析)的Firebase SDK添加到您的應用中。

    爪哇

    implementation 'com.google.firebase:firebase-config:19.2.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'
    

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-config-ktx:19.2.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
    

獲取遠程配置單例對象

獲取一個遠程配置對象實例,並設置最小獲取間隔以允許頻繁刷新:

爪哇

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Kotlin + KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

單例對像用於存儲應用內默認參數值,從後端獲取更新的參數值,以及控制何時將獲取的值提供給您的應用。

在開發過程中,建議設置相對較低的最小獲取間隔。有關更多信息,請參見節流

設置應用內默認參數值

您可以在Remote Config對像中設置應用程序內默認參數值,以便您的應用程序在連接到Remote Config後端之前按預期方式運行,並且如果後端中未設置默認值,則可用。

  1. 使用存儲在應用程序的res/xml文件夾中的Map對像或XML資源文件定義一組參數名稱和默認參數值。 Remote config quickstart示例應用程序使用XML文件定義默認參數名稱和值。
  2. 使用setDefaultsAsync(int)將這些值添加到Remote Config對象,如下所示:

爪哇

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin + KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

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

現在,您可以從“遠程配置”對象獲取參數值。如果您在後端設置值,先獲取它們,然後將其激活,則這些值可用於您的應用程序。否則,您將獲得使用setDefaultsAsync(int)配置的應用程序內參數值。要獲取這些值,請調用下面列出的方法,該方法映射到您的應用所需的數據類型,並提供參數key作為參數:

在遠程配置後端中設置參數值

使用Firebase控制台或Remote Config後端API ,您可以根據所需的條件邏輯或用戶定位來創建新的服務器端默認值,這些默認值將覆蓋應用內值。本部分將引導您完成Firebase控制台步驟以創建這些值。

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

獲取並激活值

  1. 要從“遠程配置”後端獲取參數值,請調用fetch()方法。您在後端設置的任何值都將被提取並存儲在Remote Config對像中。
  2. 要使獲取的參數值可用於您的應用程序,請調用activate()方法。

    對於要在一次調用中獲取和激活值的情況,可以使用fetchAndActivate()請求從Remote Config後端獲取值並將其提供給應用程序:

    爪哇

    mFirebaseRemoteConfig.fetchAndActivate()
            .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        boolean updated = task.getResult();
                        Log.d(TAG, "Config params updated: " + updated);
                        Toast.makeText(MainActivity.this, "Fetch and activate succeeded",
                                Toast.LENGTH_SHORT).show();
    
                    } else {
                        Toast.makeText(MainActivity.this, "Fetch failed",
                                Toast.LENGTH_SHORT).show();
                    }
                    displayWelcomeMessage();
                }
            });

    Kotlin + KTX

    remoteConfig.fetchAndActivate()
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    val updated = task.result
                    Log.d(TAG, "Config params updated: $updated")
                    Toast.makeText(this, "Fetch and activate succeeded",
                            Toast.LENGTH_SHORT).show()
                } else {
                    Toast.makeText(this, "Fetch failed",
                            Toast.LENGTH_SHORT).show()
                }
                displayWelcomeMessage()
            }

由於這些更新的參數值會影響應用程序的行為和外觀,因此,應在確保用戶流暢體驗的同時(例如,用戶下次打開應用程序時)激活提取的值。有關更多信息和示例,請參閱遠程配置加載策略

節流

如果應用程序在短時間內獲取次數過多,則提取調用會受到限制,並且SDK會返回FirebaseRemoteConfigFetchThrottledException 。在SDK版本17.0.0之前,限制是在60分鐘的時間內5個提取請求(較新的版本具有更大的允許限制)。

在應用程序開發過程中,您可能希望非常頻繁地獲取和激活配置(每小時多次),以便在開發和測試應用程序時快速進行迭代。為了適應多達10個開發人員的項目中的快速迭代,您可以在應用中以最小的最小獲取間隔( setMinimumFetchIntervalInSeconds )臨時設置FirebaseRemoteConfigSettings對象。

遠程配置的默認最小獲取間隔為12小時,這意味著無論實際進行了多少次獲取調用,都不會在12小時的窗口中多次從後端獲取配置。具體來說,最小提取間隔按以下順序確定:

  1. fetch(long)的參數
  2. FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)的參數
  3. 默認值12小時

要將最小獲取間隔設置為自定義值,請使用FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)

下一步

如果還沒有,請瀏覽Remote Config 用例 ,並查看一些關鍵概念和高級策略文檔,包括: