Firebase Remote Config 為如何以及何時從服務器獲取新值並在您的應用程序中激活它們提供了很大的靈活性,允許您通過控制任何可見配置更改的時間來確保高質量的最終用戶體驗。您可以使用fetchAndActivate()
在應用程序啟動時獲取新值,並使用實時遠程配置作為一種補充方法,在發布新版本的遠程配置後自動獲取最新的參數值。
本指南著眼於一些加載策略,並討論為您的應用選擇最佳選項的關鍵考慮因素。
策略 1:獲取並在加載時激活
在此策略中,您的應用程序將在您的應用程序首次啟動時調用fetchAndActivate()
以從遠程配置中獲取新值並在加載完成後立即激活它們。這種簡單的方法適用於不會在 UI 中引起任何顯著視覺變化的配置更改。在用戶使用過程中 UI 可能發生明顯變化的任何情況下都應避免使用它。
在您的應用程序調用fetchAndActivate()
之後,它可以通過調用addOnConfigUpdateListener
開始實時監聽參數值更新。此方法開始偵聽任何服務器端對參數值的更新,自動獲取它們,然後調用偵聽器。一個簡單的策略是在偵聽器中激活新值。但是,如fetchAndActivate()
所述,敏感 UI 應避免立即激活。
策略 2:在加載屏幕後激活
作為策略 1 中遇到的潛在 UI 問題的補救措施,您可以依賴加載屏幕。不要立即啟動您的應用程序,而是顯示加載屏幕並在完成處理程序中調用fetchAndActivate
。然後緊接著——再次使用回調或通知——關閉加載屏幕並允許用戶開始與您的應用程序交互。
如果您使用此策略,建議為加載屏幕添加超時。 Remote Config 的一分鐘超時時間對於用戶優質的應用程序啟動體驗來說可能太長了。
通過調用addOnConfigUpdateListener
來監聽實時遠程配置更新非常適合這種策略。在顯示加載屏幕時添加偵聽器,然後在應用程序中遠程配置值不會導致顯著視覺變化的一處或多處使用activate()
。
策略三:為下次啟動加載新值
一種有效的策略是加載新的配置值以在您的應用下次啟動時激活。在這種策略中,您的應用程序在啟動時激活獲取的值,然後再嘗試獲取新的值,假設它可能已經獲取但尚未激活新的配置值。該策略的操作順序是:
- 啟動時,立即激活先前獲取的值。這會應用您在上一個會話中從服務器下載的任何值,並且幾乎是即時的。
- 當用戶與您的應用交互時,啟動異步調用以根據默認的最小獲取間隔獲取新值並添加實時配置更新偵聽器。實時偵聽器將在您的應用程序運行時自動獲取在服務器上發布的任何值。實時更新繞過最小獲取間隔設置。
- 在 fetch 調用的完成處理程序或回調中,什麼都不做。您的應用程序將保留下載的值,直到您在下次應用程序啟動時激活它們。
通過這種策略,用戶等待時間大大減少。根據應用程序生命週期中的需要,將獲取和實時偵聽器策略與activate()
調用相結合,確保用戶在與您的應用程序交互時從 Remote Config 獲得最新值。
加載反策略
您可能已經從上面關於加載優缺點的討論中了解到,有幾種使用模式需要避免。
- 請勿在用戶查看或與之交互時更新或切換 UI 的各個方面——除非您有充分的應用或業務理由這樣做,例如刪除與剛剛結束的促銷活動相關的選項。
- 不要同時發送大量提取請求,這可能會導致服務器限制您的應用程序。如果您需要經常獲取更新,請使用實時遠程配置。雖然在大多數生產場景中節流的風險很低,但在積極的開發過程中可能會成為一個問題——實時遠程配置專為這種用例而設計。查看節流指南。
- 不要依賴網絡連接來獲取遠程配置值。請設置應用內默認參數值,以便您的應用始終按預期運行。您可以使用下載的模板默認值定期保持應用程序和遠程配置後端默認值同步。
下一步
這三種基本策略絕不包含加載配置值的方法的完整列表。根據您的需要,您可以設計更複雜的策略。
查看適用於您的平台的 API 參考,以了解有關獲取和激活配置值的特定調用的更多信息。