Firebase Remote Config 提供了許多彈性,可讓您決定如何及何時從伺服器擷取新值,並在應用程式中啟用這些值,讓您控制任何可見設定變更的時間,確保優質的使用者體驗。您可以使用 fetchAndActivate 在應用程式啟動時擷取新值,並使用即時Remote Config做為輔助方法,在發布新版 Remote Config 後自動擷取最新參數值。
本指南將介紹幾種載入策略,並討論挑選最適合應用程式的選項時,有哪些考量重點。
策略 1:載入時擷取並啟用
在這個策略中,應用程式會在首次啟動時呼叫 fetchAndActivate,從 Remote Config 擷取新值,並在載入完成後立即啟用。如果設定變更不會導致 UI 發生劇烈的視覺變化,這種做法就很適合。如果使用者在使用 UI 時,UI 可能會明顯變更,請避免採用這種做法。
應用程式呼叫 fetchAndActivate 後,可以呼叫 addOnConfigUpdateListener,開始即時監聽參數值更新。這個方法會開始監聽參數值的任何伺服器端更新,自動擷取這些更新,然後呼叫事件監聽器。其中一項策略是在事件監聽器中啟用新值。不過,如 fetchAndActivate 所述,請避免立即啟用敏感 UI。
策略 2:在載入畫面後方啟用
如要解決策略 1 中可能遇到的 UI 問題,您可以使用載入畫面。請先顯示載入畫面,並在完成處理常式中呼叫 fetchAndActivate,而不是立即啟動應用程式。接著,同樣使用回呼或通知,關閉載入畫面,讓使用者開始與應用程式互動。
如果採用這項策略,建議您為載入畫面設定逾時時間。遠端設定的一分鐘逾時時間可能太長,無法為使用者提供優質的應用程式啟動體驗。
呼叫 addOnConfigUpdateListener 來監聽即時 Remote Config 更新,與這項策略搭配得很好。在顯示載入畫面時新增事件監聽器,然後在應用程式中 Remote Config 值不會造成視覺效果大幅變動的一或多個位置使用 activate()。
策略 3:載入新值,供下次啟動時使用
有效策略是載入新的設定值,並在應用程式下次啟動時啟用。在這個策略中,應用程式會在啟動時啟用擷取的值,然後才嘗試擷取新值,並假設可能已擷取但尚未啟用新的設定值。這項策略的作業順序如下:
- 啟動時,立即啟用先前擷取的值。這項作業會套用您在先前工作階段中從伺服器下載的所有值,而且幾乎能立即完成。
- 使用者與應用程式互動時,請啟動非同步呼叫,根據預設的擷取間隔下限擷取新值,並新增即時設定更新事件監聽器。應用程式執行時,即時事件監聽器會自動擷取伺服器上發布的所有值。即時更新會略過擷取間隔下限設定。
- 在擷取呼叫的完成處理常式或回呼中,不執行任何動作。應用程式會保留下載的值,直到下次啟動時啟用。
這項策略可大幅縮短使用者等待時間。在應用程式生命週期中,視需要結合擷取和即時事件監聽器策略與 activate() 呼叫,確保使用者在與應用程式互動時,能取得 Remote Config 的最新值。
正在載入反制策略
根據前幾節的載入策略,請避免下列使用模式:
- 請勿在使用者查看或與 UI 互動時更新或切換 UI 的各個部分,除非您有充分的應用程式或業務理由,例如移除與剛結束的促銷活動相關的選項。
- 請勿同時傳送大量擷取要求,否則伺服器可能會限制應用程式。如需經常擷取更新,請使用即時Remote Config。雖然在大多數實際工作環境中,受到限制的風險很低,但在主動開發期間,這可能會成為問題,而即時 Remote Config 就是專為這種用途設計。請參閱調節指南。
- 請勿依賴網路連線取得 Remote Config 值。務必設定應用程式內預設參數值,確保應用程式一律正常運作。您可以使用下載的範本預設值,定期同步應用程式和 Remote Config 後端的預設值。
後續步驟
這三種基本策略絕非載入設定值的完整方法清單。您可以視需求制定更複雜的策略。
請參閱平台的 API 參考資料,進一步瞭解擷取及啟用設定值的特定呼叫。