2016-12-30 57 views
0

提供默認值是使用RemoteConfig時的步驟之一。它通常看起來像這樣:需要爲Firebase RemoteConfig提供默認值嗎?

let sefaults: [String: NSObject] = [ 
     "key1" : "value1" as NSObject, 
     "key2" : "value2" as NSObject 
    ] 
FIRRemoteConfig.remoteConfig().setDefaults(defaults) 

我發現RemoteConfig在上述情況下工作得很好。以上是否有必要?另外,它在做什麼?似乎是一個沒有操作。

回答

2

不,不需要提供默認值。 但是,如果您的應用程序不使用您定義的類型的靜態默認值(靜態默認值,字符串,布爾等)

Firebase Remote Config決定值的方式可以如下來描述:

  • 首先它檢查是否有一個高速緩存已存儲從服務器,如果有它使用。
  • 如果有沒有緩存的值,它看起來默認定義要麼編程或在默認文件。 (當你調用setDefaults()
  • 如果服務器沒有緩存值,並在默認沒有價值,它使用該類型系統默認。 因此,即使它看起來不像它習慣於你,你應該用乾淨的安裝和沒有互聯網來測試你的應用程序,以確定它是否按預期工作。

更多信息可以在這裏找到:https://firebase.google.com/docs/remote-config/ Firebase Remote Config Default Values Decision Making

+0

不,它總是使用服務器讀取值作爲首要任務。如果由於某種原因無法訪問服務器(即缺少互聯網或在服務器響應之前訪問這些值),那麼它將使用setDefaults()中的默認值。當有新值時,設備不會收到通知,它只會在緩存時間後獲得新值(這是上次成功讀取後12小時的默認值)。 https://firebase.google.com/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#fetch() – riggaroo

+0

嗨@riggaroo,發佈https://riggaroo.co.za/custom-file-template -group-android-studiointellij /是非常有用/有用的。我發現了一個小錯誤,導致整個IDE鎖定(使用AS2.3);需要在Mac上強制退出。如果你仍然在維護帖子,以便其他人不會遇到相同的_locked IDE_,則在第6行的'MvpViewActivity.java.ftl'中有'$ {classname} Contract ..'這裏有令牌變量不像所有其他事件一樣駱駝 - 應該是'$ {className}'。有了這個更新,解決方案就像一個魅力。非常感謝您在那裏分享您的筆記 – gnB

相關問題