Firebase 遠端設定載入策略

Firebase Remote Config 可彈性控制從伺服器擷取新值並在應用程式中啟用的時間和方式,確保使用者體驗品質,因為您可以控制任何可見設定變更的時機。您可以在應用程式啟動時使用 fetchAndActivate 擷取新值,並使用即時Remote Config做為輔助方法,在發布新版 Remote Config 後自動擷取最新的參數值。

本指南將介紹幾種載入策略,並討論選擇最適合應用程式選項時的關鍵考量。

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

採用這項策略時,應用程式會在首次啟動時呼叫 fetchAndActivate,從 Remote Config 擷取新值,並在載入完成後立即啟用。如果設定變更不會導致 UI 發生劇烈的視覺變化,這個方法就非常適用。如果使用者在使用時,UI 可能會明顯變更,請避免採用這種做法。

應用程式呼叫 fetchAndActivate 後,即可呼叫 addOnConfigUpdateListener,開始即時監聽參數值更新。這個方法會開始監聽參數值的任何伺服器端更新,自動擷取這些更新,然後呼叫監聽器。其中一項策略是在監聽器中啟用新值。不過,如 fetchAndActivate 所述,請避免立即啟動敏感的 UI。

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

為解決策略 1 中可能遇到的 UI 問題,您可以採用載入畫面。請勿立即啟動應用程式,而是顯示載入畫面,並在完成處理常式中呼叫 fetchAndActivate。然後立即使用回呼或通知,關閉載入畫面,讓使用者開始與應用程式互動。

如果使用這項策略,建議在載入畫面中新增逾時。對使用者來說,遠端設定的一分鐘逾時時間可能太長,無法提供優質的應用程式啟動體驗。

呼叫 addOnConfigUpdateListener 監聽即時 Remote Config 更新內容,可與這項策略搭配使用。在顯示載入畫面時新增監聽器,然後在應用程式中一或多個 Remote Config 值不會造成劇烈視覺變化的位置使用 activate()。

策略 3:載入下次啟動的新值

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

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

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

正在載入反策略

根據上述載入策略章節,請避免下列使用模式:

  • 使用者正在查看或與 UI 互動時,請勿更新或切換 UI 的各個層面,除非您有充分的應用程式或業務理由,例如移除與剛結束的促銷活動相關的選項。
  • 請勿同時傳送大量擷取要求,否則伺服器可能會限制應用程式的頻率。如需頻繁擷取更新,請使用即時Remote Config。在大多數實際工作環境中,節流的風險很低,但在積極開發期間可能會發生問題,而即時 Remote Config 專為這種用途設計。請參閱節流指南。
  • 請勿依賴網路連線來取得 Remote Config 值。 請設定應用程式內預設參數值,確保應用程式一律能正常運作。您可以定期使用下載的範本預設值,讓應用程式和 Remote Config 後端預設值保持同步。

後續步驟

這三種基本策略絕非載入設定值的所有方式。視需求而定,您可以設計更精密的策略。

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