Firebase 遠端設定載入策略

Firebase 遠端設定提供許多彈性,方便您從伺服器擷取新值,並在應用程式中啟用值的方式和時機,讓您控管所有可見的設定變更的時間,確保優質的使用者體驗。您可以在應用程式啟動時使用 fetchAndActivate() 擷取新值,並使用即時遠端設定做為輔助方法,在遠端設定新版本發布後,自動擷取最新的參數值。

本指南探討幾個載入策略,並討論挑選最佳應用程式選項時需考量的重點。

策略 1:在載入時擷取並啟用

在這項策略中,應用程式會在應用程式初次從遠端設定擷取新值時呼叫 fetchAndActivate(),並在載入完成後立即啟用。如果設定變更不會在 UI 中造成任何大幅變動,就很適合使用這個方法。在使用者正在使用 UI 的過程中,使用者介面可能會有明顯變化的情況,都應避免使用行為。

應用程式呼叫 fetchAndActivate() 後,就可以呼叫 addOnConfigUpdateListener,開始即時監聽參數值更新。這個方法會開始監聽參數值的任何伺服器端更新、自動擷取,然後呼叫事件監聽器。簡易的策略是在事件監聽器中啟用新值。不過,如 fetchAndActivate() 中所述,對於敏感的 UI,應避免立即啟用。

策略 2:在載入畫面背後啟用

修正策略 1 可能發生的 UI 問題,您可以依賴載入畫面。在完成處理常式中顯示載入畫面並呼叫 fetchAndActivate,不要立即啟動應用程式。隨後,再次使用回呼或通知,關閉載入畫面並允許使用者開始與應用程式互動。

如果您採用這項策略,建議您為載入畫面新增逾時設定。遠端設定的一分鐘逾時時間可能過長,為使用者提供優質的應用程式啟動體驗。

透過呼叫 addOnConfigUpdateListener 來監聽即時遠端設定更新,適用於這項策略。在顯示載入畫面時顯示事件監聽器,然後在應用程式的一或多個點使用 activate(),因為遠端設定值不會造成視覺效果大幅變動。

策略 3:為下一個啟動程序載入新值

有效的策略是載入新的設定值,以便在應用程式下一個啟動時啟用。採用這項策略時,應用程式會在啟動時啟用擷取的值,然後再嘗試擷取新的值,並假設應用程式可能已擷取,但尚未啟用新的設定值。這項策略的運作順序為:

  1. 在啟動時立即啟用先前擷取的值。這會套用您在前一個工作階段中從伺服器下載的所有值,且幾乎可以立即執行。
  2. 使用者與應用程式互動時,啟動非同步呼叫,以便根據預設的最短擷取間隔擷取新值,並新增即時設定更新事件監聽器。即時事件監聽器會自動擷取應用程式執行期間發布在伺服器的任何值。即時更新會略過擷取間隔下限設定。
  3. 在擷取呼叫的完成處理常式或回呼中,不執行任何動作。應用程式會保留已下載的值,直到您下次啟動應用程式為止。

採用這項策略,就能大幅縮短使用者等待時間。在應用程式生命週期中視需要結合擷取和即時事件監聽器策略與 activate() 呼叫,可確保使用者與應用程式互動時,可透過遠端設定取得最新的值。

正在載入反策略

您可能已經從上述有關載入優缺點的討論瞭解,有幾種需要避免的使用模式。

  • 「請勿」在使用者查看或互動時更新或切換 UI 層面,「除非」有強大的應用程式或業務理由,例如移除剛結束的促銷活動的相關選項。
  • 請勿傳送大量同時擷取要求,這可能會導致伺服器限制應用程式。如果您需要經常擷取更新,請使用即時遠端設定。在大多數實際工作環境中,節流的風險較低,但在開發期間可能是問題,而即時遠端設定是專為此使用案例而設計。請參閱節流指南
  • 請勿仰賴網路連線來取得遠端設定值。設定應用程式內的預設參數值,讓應用程式能持續正常運作。您可以使用下載的範本預設值,定期同步處理應用程式和遠端設定後端的預設值。

後續步驟

這三種基本策略並非由任何方式構成,完整的設定值載入方式清單。您可以視需求制定更複雜的策略。

請參閱您平台的 API 參考資料,進一步瞭解擷取及啟用設定值的特定呼叫。