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:載入下次啟動時的新值
有效的策略是載入新的設定值,以便在應用程式下次啟動時啟用。在這個策略中,應用程式會在啟動時啟用已擷取的值,然後再嘗試擷取新的值,並假設應用程式可能已擷取 (但尚未啟用) 新的設定值。這個策略的作業順序如下:
- 啟動時立即啟用先前擷取的值。這會套用您在前一個工作階段中從伺服器下載的所有值,且幾乎可以立即執行。
- 在使用者與應用程式互動時,請啟動非同步呼叫,根據預設的最小擷取間隔擷取新值,並新增即時設定更新事件監聽器。即時事件監聽器會在應用程式執行期間,自動擷取在伺服器上發布的任何值。即時更新會略過擷取間隔下限設定。
- 在擷取呼叫的完成處理常式或回呼中,不執行任何動作。應用程式會保留下載的值,直到下次啟動應用程式時才會啟用。
採用這項策略後,使用者等待時間將大幅縮短。在應用程式生命週期中視需要結合擷取和即時事件監聽器策略與 activate()
呼叫,可確保使用者與應用程式互動時能取得 Remote Config 的最新值。
正在載入反策略
您可能已從上述載入優點和缺點的討論中瞭解,有幾種使用模式應避免使用。
- 在使用者查看或與 UI 互動時,請勿更新或切換 UI 的部分內容,除非您有充分的應用程式或業務理由,例如移除與剛結束的促銷活動相關的選項。
- 請勿傳送大量同時擷取要求,這可能會導致伺服器對應用程式進行節流。如果您需要經常擷取更新,請使用即時 Remote Config。雖然在大多數實際工作環境中,節流的風險較低,但在開發期間可能是問題,而即時 Remote Config 是專為此用途而設計。請參閱節流指南。
- 請勿透過網路連線取得 Remote Config 值。請設定應用程式內的預設參數值,確保應用程式一律能正常運作。您可以使用下載的範本預設值,定期讓應用程式和 Remote Config 後端的預設值保持同步。
後續步驟
這三種基本策略絕非載入設定值的完整清單。視需求而定,您可以設計更精密的策略。
請查看平台的 API 參考資料,進一步瞭解擷取及啟用設定值的特定呼叫。