2016-12-30 47 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

相关问题